在ASP.NET 5應用程式中的跨域請求功能詳解什麼是“同域”新增CORS包在應用程式中配置CORSCORS策略選項跨域請求中的憑據設定先行請求的過期時間CORS是怎麼樣工作的先行請求
阿新 • • 發佈:2022-05-03
刪除排序陣列中的重複項
給你一個 升序排列 的陣列 nums ,請你 原地 刪除重複出現的元素,使每個元素 只出現一次 ,返回刪除後陣列的新長度。元素的 相對順序 應該保持 一致 。
由於在某些語言中不能改變陣列的長度,所以必須將結果放在陣列nums的第一部分。更規範地說,如果在刪除重複項之後有 k 個元素,那麼 nums 的前 k 個元素應該儲存最終結果。
將最終結果插入 nums 的前 k 個位置後返回 k 。
不要使用額外的空間,你必須在 原地 修改輸入陣列 並在使用 O(1) 額外空間的條件下完成。
輸入:nums = [1,1,2] 輸出:2, nums = [1,2,_] 解釋:函式應該返回新的長度 2 ,並且原陣列 nums 的前兩個元素被修改為 1, 2 。不需要考慮陣列中超出新長度後面的元素。
package com.why; import java.util.Arrays; public class RemoveDuplicates { //雙指標判斷 public int removeDuplicates(int[] nums) { int left = 0; //條件邊界判斷 if (nums == null || nums.length == 0){ return 0; } for (int right = 1; right < nums.length; right++) //如果左指標和右指標指向的值一樣,說明有重複的, //這個時候,左指標不動,右指標繼續往右移。如果他倆 //指向的值不一樣就把右指標指向的值往前挪 if (nums[left] != nums[right]) nums[++left] = nums[right]; return ++left; } //正常思單向移動 public int removeDuplicate(int[] nums) { int count = 0;//重複的數字個數 for (int right = 1; right < nums.length; right++) { if (nums[right] == nums[right - 1]) { //如果有重複的,count要加1 count++; } else { //如果沒有重複,後面的就往前挪 nums[right - count] = nums[right]; System.out.println(Arrays.toString(nums)); } } //陣列的長度減去重複的個數 return nums.length - count; } }