LeetCode26、27 刪重複元素
LeetCode26 刪重複元素
給定一個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。
不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 O(1) 額外空間的條件下完成。
示例 1:
給定陣列 nums = [1,1,2],
函式應該返回新的長度 2, 並且原陣列 nums 的前兩個元素被修改為 1, 2。
你不需要考慮陣列中超出新長度後面的元素。
思路
考慮用 2 個指標,一個在前記作 p,一個在後記作 q,演算法流程如下:
1.比較 p 和 q 位置的元素是否相等。
如果相等,q 後移 1 位
如果不相等,將 q 位置的元素複製到 p+1 位置上,p 後移一位,q 後移 1 位
重複上述過程,直到 q 等於陣列長度。
返回 p + 1,即為新陣列長度。
class Solution {
public int removeDuplicates(int[] nums) {
int p=0,q=1;
while(q<nums.length){
if(nums[p]!=nums[q]){
nums[p+1]=nums[q];
p++;
}
q++;
}
return p+1;
}
}
第27題類似,只用改一個比較的地方
class Solution {
public int removeElement(int[] nums, int val) {
if(nums==null)return 0;
int p=0,q=0;
while(q<nums.length){
if(nums[q]!=val){
nums[p]=nums[q];
p++;
}q++;
}
return p;
}
}
相關文章
- JavaScript 刪除陣列重複元素JavaScript陣列
- Remove Duplicate Letters 刪除重複元素REM
- JavaScript陣列刪除重複元素JavaScript陣列
- 如何刪除ArrayList中的重複元素
- js刪除陣列中重複的元素JS陣列
- js刪除陣列中的重複元素JS陣列
- javascript刪除陣列重複元素程式碼JavaScript陣列
- ES6刪除字串中重複的元素字串
- 存在重複元素
- JavaScript 拼接多個陣列並刪除重複元素JavaScript陣列
- javascript刪除陣列重複元素程式碼例項JavaScript陣列
- 演算法提高 11-2刪除重複元素演算法
- js刪除陣列重複元素程式碼例項JS陣列
- javascript刪除陣列中的重複元素程式碼JavaScript陣列
- javascript刪除陣列中重複元素程式碼例項JavaScript陣列
- Java刪除ArrayList中的重複元素的2種方法Java
- js連線多個陣列並刪除重複的元素JS陣列
- 演算法刪除單連結串列中重複的元素演算法
- 三種方法刪除列表中重複的元素及效率分析!
- O(1) 時間插入、刪除和獲取隨機元素,允許元素重複隨機
- 83. 刪除排序連結串列中的重複元素(JavaScript版)排序JavaScript
- js利用正規表示式刪除陣列中的重複元素JS陣列
- JavaScript刪除陣列重複元素的5個高效演算法JavaScript陣列演算法
- 力扣-83. 刪除排序連結串列中的重複元素力扣排序
- 有重複元素的全排列
- 力扣之存在重複元素力扣
- 刪除重複資料
- 刪除oracle重複值Oracle
- JavaScript 刪除重複字元JavaScript字元
- mysql 刪除重複項MySql
- Oracle刪重複記錄Oracle
- java陣列中重複元素的去重Java陣列
- leetcode-刪除排序陣列中的重複項+移除元素LeetCode排序陣列
- 0928面試小節:刪除有序連結串列中的重複元素面試
- js如何合併兩個陣列並且刪除重複的元素JS陣列
- 27,移除元素
- 查詢Set中重複的元素
- 961. 重複 N 次的元素