查找中间元素 (最小元素) 的索引根据以下条件对子数组应用二分搜索−如果数字介于开始元素和中间位置 1 的元素之间。则使用二分搜索在数组开始到中间值-1 中查找数字如果数字介于中间元素和最后一个元素之间,则使用二分搜索在数组的中部到最后一个元素中查找数字示例 Live Demousing System; using System.Collections.Generic; using System.Text; using System.Linq; namespace ConsoleApplication{ public class Arrays{ public int FindNumberRotated(int[] array, int start, int end, int value){ if (start > end){ return ... 了解更多
创建一个回溯函数,如果打开括号少于 n 或闭合括号少于打开括号,则更新当前字符串。当当前字符串的长度等于 2*n 时,将其添加到组合结果数组。只需通过保留已放置的 { } 的数量即可轻松跟踪。如果还剩下一个开放括号,我们就可以启动一个开放括号。并且如果它不会超过打开括号的数量,我们就可以开始闭合括号。示例 Live Demousing System; using System.Collections.Generic; using System.Text; using System.Linq; namespace ConsoleApplication{ public class BackTracking{ ... 了解更多
不同的子集问题给了我们给定数组的不同组合。当目标为 2,则从数组中,我们取所有对应于数字 2 的组合,当目标为 3,则从数组中,我们取所有对应于计数 3 的组合。在下面的示例中,数组为 [1, 2, 3],且目标为 2。所以,我们取所有对应于数字 2 的组合“1, 2“、“2, 3”、“1, 3”。示例 Live Demousing System; using System.Collections.Generic; using System.Text; using System.Linq; namespace ConsoleApplication{ public class BackTracking{ public ... 阅读更多
该问题可以分解成更小更简单的“子问题”,可以进一步分解成更简单更小的子问题。我们逐一取每个数字,并计算从任何数字可到达的所有 n 个数字,使用一个映射来存储从每个数字可到达的数字映射。当数字变成 n 位数时,更新计数。示例 Live Demousing System; using System.Collections.Generic; namespace ConsoleApplication{ public class BackTracking{ private string GetKeyPadValueBasedOnInput(string digit){ Dictionary keypad = new Dictionary(); keypad.Add("2", "abc"); keypad.Add("3", "def"); ... 阅读更多