本著練習的目的,建議不要取巧,勝一時易,時時勝難
難點:nums去重之後為什麼會改變陣列大小 ?what? val是去重後的索引,但nums是素組啊,列印這個索引出現了陣列
個人理解:
// 我是長度,超過的刪除
int len = removeduplicates(nums);
難點:不知道為什麼要叫旋轉陣列,利用取餘重新設定陣列的索引說明:
為什麼返回數值是整數,但輸出的答案是陣列呢?
請注意,輸入陣列是以「引用」方式傳遞的,這意味著在函式裡修改輸入陣列對於呼叫者是可見的。
你可以想象內部操作如下:
// nums 是以「引用」方式傳遞的。也就是說,不對實參做任何拷貝
int len = removeduplicates(nums);
public class solution
int val=0;
//排序
for(int i=0;i難點:盡量少的使用for迴圈
public class solution
}return sum;
}
var nums = arry;
int k = 3;
//超出取餘
k %= nums.length;
int arr = new int[nums.length];
int n = nums.length;
for (int i = 0; i < nums.length; i++)
arr.copyto(nums, 0);
線性時間複雜度:要求我們的**時間複雜度最高為o(n),不能有巢狀迴圈等。public class program ;
var res = containsduplicate(nums);
console.writeline(res);
nums = new int ;
res = containsduplicate2(nums);
console.writeline(res);
nums = new int ;
res = containsduplicate3(nums);
console.writeline(res);
console.readkey();
}private static bool containsduplicate(int nums)
}return false;
}private static bool containsduplicate2(int nums)
return false;
}private static bool containsduplicate3(int nums)
return false;
}}
不使用額外空間:要求空間複雜度最高為o(1)。
方法一(比較法):
public static int singlenumber(int nums)
}// 如果沒有找到不相等的一組資料,直接返回陣列的最後乙個數字
return nums[nums.length - 1];
}方法二(去重法):
public static int singlenumber(int nums)
}return set.iterator().next();9 }
方法三(求差法):
思路:先對陣列排序,顯而易見的,單獨出現一次的資料必然是出現在陣列下標為偶數的位置(下標從0開始),那麼所有奇數下標的元素之和減去偶數下標的元素之和,就是需要求得的結果。
public static int singlenumber(int nums)
return num;
}方法四(異或法):
思路:根據異或運算的特點,相同的數字經過異或運算後結果為0,除單獨出現一次的數字外,其他數字都是出現兩次的,那麼這些數字經過異或運算後結果一定是0。而任何數字與0進行異或運算都是該數字本身。所以對陣列所有元素進行異或運算,運算結果就是題目的答案。
public static int singlenumber(int nums)
return num;
}
Leetcode 每日一道
如果不出意外每天會寫一道演算法題的部落格。如果題目簡單,就一天發布一道。如果題目比較難。我會2 3天發一道演算法的題目。今天寫的這道題目比較簡單。題目如下 解法我是用c 寫的。我的解法的大致想法是 先把需要轉換的矩陣直接轉換成一維的陣列,然後再根據要求把一維中的元素全部截為以c個元素為一組的vect...
leetcode每日一刷
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。class solution object deftwosum self,nums,target ...
LeetCode每日一刷
004 尋找兩個有序陣列的中位數 題目 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。...