日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

array专题9

發布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 array专题9 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新的一周,新的專題。array的中等難度的題目快要結束了。能感覺到進步,也依然能感覺到吃力。加油。

31 Next Permutation

思路:讀懂了題意,知道是要求下一個排列數是什么。如果已經到最后一個了,那就返回最小的那個。但是盯著那個 1,2,3;3,2,1看了兩分鐘,毫無頭緒。搜索到一篇好文章,原來樣例數據也很重要哦。把樣例數據加長就能發現規律了。下面的內容和原文章基本一樣。
例如輸入:6 5 4 8 7 5 1,應該返回什么呢?
首先肯定這個排列沒有到最大,不是返回最小的排列,因為最起碼8沒在第一位。
第二,從后面看起。5比1大,如果調換5,1排列數更小,不對。調換7,5也一樣。繼續看發現到4的位置可以換了。原來4后面的8 7 5 1 是一個遞減序列。根據遞減序列,找到要替換的元素4。
第三,4應該被5替換,也就是遞減序列中,比4大的最小元素。替換之后是 6 5 5 8 7 4 1。
第四,8 7 4 1 按照升序排列。
學習:看完別人的答案,我才知道我對6 5 4 8 7 5 1,應該返回什么,頭腦中并沒有清晰的概念。只是大概知道怎么做。樣例數據延長,有助于發現規律。
代碼

79 Word Search

思路:基本思路是回溯法。遍歷board,把每個char的位置放入map中。然后從word的第一個字符開始找。遞歸的退出條件是idx>=word.length。每一步查找的時候都只是查找固定位置相鄰的位置上的元素。這里需要注意的是,一個位置的元素被訪問過以后就不能再訪問了。我使用了雙向隊列解決這個問題。
學習:直接修改board[i][j]=*,標記已經訪問過的元素。速度更快。總結一下:標記數組是否訪問過,可以開辟新的空間做標記,可以修改原數組的值標記。修改原數組值可以修改為別的值,或者添加負號。
代碼

數字加和問題總結

兩數字加和
三數字加和
四數字加和
四數組加和II
數字加和問題有幾個細節:1 返回的是數組下標還是數值;2 數組是排序好的嗎?3 數組中有重復元素嗎?

782. Transform to Chessboard

題意:特點1:N?NN?N的矩陣;特點2:相鄰位置是指橫軸和縱軸相鄰的4個位置;特點3:元素值0的4個鄰居都是1,元素值1的4個鄰居都是0。
思路:將例題的輸入做了以下操作得到有效矩陣

如果矩陣中有相鄰的兩行或者相鄰的兩列相同就需要交換操作。
接下來思考如何判斷矩陣中相鄰兩行相同。下標從0開始。第1行與第0行比較;第2行與第1行比較。
還要思考如果找到相同的兩行,應該換到什么位置。例如第1行和第0行相同=>移動第1行;第1行與第2行不同 =>第1行和與第2行換位置。再次比較新的第2行與第3行是否相同。當找不到替換位置的時候,返回-1。

學習:上面的總結并不徹底。參考網頁
一個有效的矩陣的性質有:
1 當第一行輸入定了以后,只有兩種行數據:0110和1001,不會有形式。其中一種是另外一種的逆。對列也是一樣的。由此觀察到,矩陣上左、上右、下左、下右四個位置的值可能是4個0,也肯能是2個0和2個1,或者4個1。
2 每一行(列)有一半值是1,一半值是0。如果n=2*k,那么每行(列)有k個0,k個1;如果n=2*k+1,那么每行(列)有k個0,k+1個1或者k個1,k+1個0。

152 Maximum Product Subarray

思路:乘積最大的子數組,立馬聯想到了和最大的子數組。都用動態規劃。這里和與乘積有一個最大的區別是+<負數+正數<正數,而?<負數?正數<負數?>負數?負數>負數。對于本題的狀態轉移方程就不只是和最大值之間的關系了。
dp[i]=Math.max(Math.max(dp[i-1]*nums[i],dpMin[i-1]*nums[i]),nums[i]);
dp[i-1]存儲到i-1下標最大的乘積;dpMin[i-1]存儲到i-1下標最小的乘積。
這個題目與 Subarray Sum Equals K 是有區別的。
代碼

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的array专题9的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。