LeetCode每日一解

2021-10-01 22:20:37 字數 2190 閱讀 9911

本著練習的目的,建議不要取巧,勝一時易,時時勝難

難點: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);

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(n),不能有巢狀迴圈等。

不使用額外空間:要求空間複雜度最高為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。...