和跳棋2的思路類似便贵,也是利用左右指針來(lái)表示所能達(dá)到的位置萍倡。為了能正確的推出循環(huán),利用兩個(gè)變量來(lái)保存right 如果兩次迭代的right 是一樣的...
給定一個(gè)矩陣返弹,返回按照其順時(shí)針旋轉(zhuǎn)的數(shù)組。如: 思路:一共只有3類矩陣慧耍,m>n, m=n 和 m<n 三種履因,對(duì)于中間這一種,一直迭代就行馒铃,而...
給定一個(gè)數(shù)組蟹腾,找出其中和最大的子序列。 思路:把所有的和都算出來(lái)区宇,建立sum數(shù)組娃殖,找出其中最大和最小的和,相減即可得到议谷。sum應(yīng)該要先放入一個(gè)0...
給定一個(gè)矩陣炉爆,將其順時(shí)針旋轉(zhuǎn)90度 思路1:兩兩交換,為了方便交換卧晓,先將每一行反向芬首,這樣再做對(duì)稱的交換即可。
與上題不同逼裆,這次的數(shù)組中存在相同的元素郁稍。插入的思路已經(jīng)沒辦法進(jìn)行下去了,只能用交換的思想波附,而交換的時(shí)候只要保證交換的兩者不一樣即可艺晴,這樣就能保證...
給定n個(gè)不同的數(shù)字昼钻,返回所有可能的排列。 主要思想是插入封寞,對(duì)于給定的數(shù)字然评,分別插入。如給定的 1 2 3 狈究。首先選取 1 碗淌, 然后將 2 插入其...
利用雙指針,左側(cè)指向能跳的最近的那個(gè)抖锥,右側(cè)指向能跳的最遠(yuǎn)的那個(gè)亿眠,一旦最遠(yuǎn)的大于等于size-1了就可以返回步數(shù)了。
要求O(n) 這就代表了我們不能排序磅废,如果可以排序的話會(huì)很簡(jiǎn)單纳像。比如可以如下這樣: 先對(duì)數(shù)組排序,只要假設(shè)第一個(gè)缺失的數(shù)字就好了拯勉,首先假設(shè)是1 ...
與上題不同竟趾,每個(gè)數(shù)字只能使用一次。 利用深度優(yōu)先搜索宫峦,其過程簡(jiǎn)要來(lái)說(shuō)是對(duì)每一個(gè)可能的分支路徑深入到不能再深入為止岔帽,而且每個(gè)節(jié)點(diǎn)只能訪問一次.