classSolution { public: intremoveDuplicates(std::vector<int>& nums){ if (nums.empty()) { return0; } int k = 1; for (int i = 1; i < nums.size(); i++) { if (nums[i] != nums[i - 1]) { nums[k++] = nums[i]; } } return k; } };
结果
执行用时 : 3 ms, 击败 97.81% 使用 C++ 的用户
内存消耗 : 20.66 MB, 击败 5.12% 使用 C++ 的用户
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14
publicclassSolution { publicintremoveDuplicates(int[] nums) { if (nums.length == 0) { return0; } intk=1; for (inti=1; i < nums.length; i++) { if (nums[i] != nums[i - 1]) { nums[k++] = nums[i]; } } return k; } }
结果
执行用时 : 0 ms, 击败 100.00% 使用 Java 的用户
内存消耗 : 43.79 MB, 击败 18.76% 使用 Java 的用户
Python
1 2 3 4 5 6 7 8 9 10
classSolution(object): defremoveDuplicates(self, nums): ifnot nums: return0 k = 1 for i inrange(1, len(nums)): if nums[i] != nums[i - 1]: nums[k] = nums[i] k += 1 return k
结果
执行用时 : 28 ms, 击败 49.67% 使用 Python 的用户
内存消耗 : 12.79 MB, 击败 95.46% 使用 Python 的用户
Python3
1 2 3 4 5 6 7 8 9 10
classSolution: defremoveDuplicates(self, nums: List[int]) -> int: ifnot nums: return0 k = 1 for i inrange(1, len(nums)): if nums[i] != nums[i - 1]: nums[k] = nums[i] k += 1 return k
结果
执行用时 : 49 ms, 击败 41.19% 使用 Python3 的用户
内存消耗 : 17.69 MB, 击败 30.93% 使用 Python3 的用户
C
1 2 3 4 5 6 7 8 9 10 11 12
intremoveDuplicates(int* nums, int numsSize) { if (numsSize == 0) { return0; } int k = 1; for (int i = 1; i < numsSize; i++) { if (nums[i] != nums[i - 1]) { nums[k++] = nums[i]; } } return k; }
结果
执行用时 : 9 ms, 击败 83.02% 使用 C 的用户
内存消耗 : 7.13 MB, 击败 97.58% 使用 C 的用户
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14
publicclassSolution { publicintRemoveDuplicates(int[] nums) { if (nums.Length == 0) { return0; } int k = 1; for (int i = 1; i < nums.Length; i++) { if (nums[i] != nums[i - 1]) { nums[k++] = nums[i]; } } return k; } }
结果
执行用时 : 117 ms, 击败 86.81% 使用 C# 的用户
内存消耗 : 49.80 MB, 击败 5.20% 使用 C# 的用户
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/** * @param {number[]} nums * @return {number} */ var removeDuplicates = function(nums) { if (nums.length === 0) { return0; } let k = 1; for (let i = 1; i < nums.length; i++) { if (nums[i] !== nums[i - 1]) { nums[k++] = nums[i]; } } return k; };
结果
执行用时 : 72 ms, 击败 66.38% 使用 JavaScript 的用户
内存消耗 : 52.09 MB, 击败 5.05% 使用 JavaScript 的用户
TypeScript
1 2 3 4 5 6 7 8 9 10 11 12
functionremoveDuplicates(nums: number[]): number { if (nums.length === 0) { return0; } let k = 1; for (let i = 1; i < nums.length; i++) { if (nums[i] !== nums[i - 1]) { nums[k++] = nums[i]; } } return k; }
classSolution { funcremoveDuplicates(_nums: inout [Int]) -> Int { if nums.isEmpty { return0 } var k =1 for i in1..<nums.count { if nums[i] != nums[i -1] { nums[k] = nums[i] k +=1 } } return k } }
结果
执行用时 : 46 ms, 击败 59.11% 使用 Swift 的用户
内存消耗 : 16.09 MB, 击败 6.07% 使用 Swift 的用户
Kotlin
1 2 3 4 5 6 7 8 9 10 11 12 13 14
classSolution { funremoveDuplicates(nums: IntArray): Int { if (nums.isEmpty()) { return0 } var k = 1 for (i in1 until nums.size) { if (nums[i] != nums[i - 1]) { nums[k++] = nums[i] } } return k } }
结果
执行用时 : 230 ms, 击败 67.37% 使用 Kotlin 的用户
内存消耗 : 40.41 MB, 击败 23.69% 使用 Kotlin 的用户
Dart
1 2 3 4 5 6 7 8 9 10 11 12 13 14
classSolution{ int removeDuplicates(List<int> nums) { if (nums.isEmpty) { return0; } int k = 1; for (int i = 1; i < nums.length; i++) { if (nums[i] != nums[i - 1]) { nums[k++] = nums[i]; } } return k; } }
结果
执行用时 : 306 ms, 击败 100.00% 使用 Dart 的用户
内存消耗 : 144.93 MB, 击败 88.24% 使用 Dart 的用户
Go
1 2 3 4 5 6 7 8 9 10 11 12 13
funcremoveDuplicates(nums []int)int { iflen(nums) == 0 { return0 } k := 1 for i := 1; i < len(nums); i++ { if nums[i] != nums[i-1] { nums[k] = nums[i] k++ } } return k }
结果
执行用时 : 6 ms, 击败 60.74% 使用 Go 的用户
内存消耗 : 4.26 MB, 击败 91.32% 使用 Go 的用户
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13
# @param {Integer[]} nums # @return {Integer} defremove_duplicates(nums) return0if nums.empty? k = 1 (1...nums.length).each do |i| if nums[i] != nums[i - 1] nums[k] = nums[i] k += 1 end end k end
结果
执行用时 : 75 ms, 击败 68.75% 使用 Ruby 的用户
内存消耗 : 207.35 MB, 击败 50.00% 使用 Ruby 的用户
Scala
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
objectSolution{ defremoveDuplicates(nums: Array[Int]): Int = { if (nums.isEmpty) { return0 } var k = 1 for (i <- 1 until nums.length) { if (nums(i) != nums(i - 1)) { nums(k) = nums(i) k += 1 } } k } }
结果
执行用时 : 548 ms, 击败 68.00% 使用 Scala 的用户
内存消耗 : 55.28 MB, 击败 84.00% 使用 Scala 的用户
Rust
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
implSolution { pubfnremove_duplicates(nums: &mutVec<i32>) ->i32 { if nums.is_empty() { return0; } letmut k = 1; foriin1..nums.len() { if nums[i] != nums[i - 1] { nums[k] = nums[i]; k += 1; } } k asi32 } }