leetcode448——巧用符号标注已出现数字

Posted dtwd886

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode448——巧用符号标注已出现数字相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/

思路:对于出现的数字将其标注为负数,if(nums[abs(nums[i])-1]>0)nums[abs(nums[i])-1]*=-1

注意:1.因为可能本身该位数字已经为负数,只有加上abs才能找到正确置为负数的下标。

2.本身值为负数代表该位数字已出现过,无需再乘以-1

class Solution 
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) 
        int len=nums.size();
        vector<int>result;
        for(int i=0;i<len;i++)
        
            if(nums[abs(nums[i])-1]>0)
            
                nums[abs(nums[i])-1]*=-1;
            
        
        for(int i=0;i<len;i++)
        
            if(nums[i]>0)
            
                result.push_back(i+1);
            
        
        return result;
    
;

 

以上是关于leetcode448——巧用符号标注已出现数字的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 448.找到所有数组中消失的数字

[LeetCode] 448. 找到所有数组中消失的数字 ☆

LeetCode 448.找到所有数组中消失的数字 - JavaScript

力扣(LeetCode)448. 找到所有数组中消失的数字

LeetCode448-找到所有数组中消失的数字(原地数组)

LeetCode448 找到所有数组中消失的数字