219給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引 i 和 j,使得 nums [i] = nums [j],並且 i 和 j 的差的 絕對值 至多為 k。
示例 1:
輸入: nums = [1,2,3,1], k = 3
輸出: true
示例 2:
輸入: nums = [1,0,1,1], k = 1
輸出: true
陣列,無序,下標之差,
,一次遍歷陣列,一次按照內部遍歷k次,但是會超時
使用雜湊表記錄位置,使用find方法,查詢之前的雜湊表,然後使用當前陣列下標減去hash的「值」,做差看距離與k的關係,
1、當說到雜湊表,對應到c++上就是unordered_map鍵值對
這個題,可以維護k個元素的鍵值對,也可以遍歷整個陣列,把所有的都存進來,然後使用當前的下標與之前雜湊表「鍵」相同的下標做差,與k作比較,
2、unordered_mapmp的find函式時間複雜度是多少?
o(1)
二分、雙指標,滑動視窗、雜湊表,棧,
class
solution
}else
}return
false;}
};
找重複元素
一道題目 乙個大小為n的整型陣列,值的範圍是1 n 1,其中有一對元素重複,問怎麼在o n 的時間複雜度下 不用o n 的空間複雜度來找出重複的那個值。這個題目最關鍵的應該是條件中的值的範圍,由於是1 n,所以用值作為下標可以遍歷從a 1 到a n 1 而元素值都是正數,那麼又可以在符號上動腦筋,當...
消除重複元素
程式設計題 消除重複元素 時間限制 1秒 空間限制 32768k 小易有乙個長度為n序列,小易想移除掉裡面的重複元素,但是小易想是對於每種元素保留最後出現的那個。小易遇到了困難,希望你來幫助他。輸入描述 輸入包括兩行 第一行為序列長度n 1 n 50 第二行為n個數sequence i 1 sequ...
存在重複元素
給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列中出現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。示例 1 輸入 1,2,3,1 輸出 true 示例 2 輸入 1,2,3,4 輸出 false 示例 3 輸入 1,1,1,3,3,4,3,2,4,2 輸出 ...