面试经典150题——Day3

文章目录

一、题目

26. Remove Duplicates from Sorted Array

Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place such that each unique element appears only once. The relative order of the elements should be kept the same. Then return the number of unique elements in nums.

Consider the number of unique elements of nums to be k, to get accepted, you need to do the following things:

Change the array nums such that the first k elements of nums contain the unique elements in the order they were present in nums initially. The remaining elements of nums are not important as well as the size of nums.

Return k.

Custom Judge:

The judge will test your solution with the following code:

int\[\] nums = ...; // Input array

int\[\] expectedNums = ...; // The expected answer with correct length

int k = removeDuplicates(nums); // Calls your implementation

assert k == expectedNums.length;

for (int i = 0; i < k; i++) {

assert numsi == expectedNumsi;

}

If all assertions pass, then your solution will be accepted.

Example 1:

Input: nums = 1,1,2

Output: 2, nums = 1,2,_

Explanation: Your function should return k = 2, with the first two elements of nums being 1 and 2 respectively.

It does not matter what you leave beyond the returned k (hence they are underscores).

Example 2:

Input: nums = 0,0,1,1,1,2,2,3,3,4

Output: 5, nums = 0,1,2,3,4,*,* ,*,* ,_

Explanation: Your function should return k = 5, with the first five elements of nums being 0, 1, 2, 3, and 4 respectively.

It does not matter what you leave beyond the returned k (hence they are underscores).

Constraints:

1 <= nums.length <= 3 * 104

-100 <= numsi <= 100

nums is sorted in non-decreasing order.

来源:leetcode

二、题解

与昨天的题目解法如出一辙

cpp 复制代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.size() == 0) return 0;
        int left = 0;
        for(int right = 0;right < nums.size();right++){
            if(nums[right] != nums[left]){
                nums[left + 1] = nums[right];
                left++;
            }
        }
        return left + 1;
    }
};
相关推荐
x_xbx1 天前
LeetCode:739. 每日温度
算法·leetcode·职场和发展
不会C语言的男孩1 天前
C++ Primer Plus 第3章:处理数据
开发语言·c++
RuiZN1 天前
UE5 蓝图 FPS 02 Event Beginplay
c++·ue5
欧米欧1 天前
C++进阶之AVL树
java·服务器·c++
艾莉丝努力练剑1 天前
【Linux:文件】库的制作与原理进阶
linux·运维·服务器·网络·数据库·c++·人工智能
计算机安禾1 天前
【算法分析与设计】第20篇:图论中的NP困难问题与近似策略
大数据·人工智能·算法
Trouvaille ~1 天前
【优选算法篇】深入浅出链表算法:交换、重排与合并的终极策略
c++·算法·链表·面试·蓝桥杯·笔试·后端开发
Z_Wonderful1 天前
大文件上传-分片上传-秒传
算法·哈希算法
heimeiyingwang1 天前
【架构实战】分布式ID生成方案:雪花算法与业务ID设计
分布式·算法·架构
圣保罗的大教堂1 天前
leetcode 3121. 统计特殊字母的数量 II 中等
leetcode