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.找到所有数组中消失的数字 - JavaScript