本文共 850 字,大约阅读时间需要 2 分钟。
题目链接:
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:
输入:nums = [2,2,3,2]
输出:3
思路一:
对数组进行排序,相同的数相邻,每次取三个相邻的数字进行判断,是否相等,如果相等继续取后面三个数进行判断;如果不相等,则答案就是这三个相邻数字的第一个,因为经过排序之后,单个出现的数字是排在相同三个数字的后面的,所以一定是三个数字的开头。 另外在最后的时候也要判断,是否最后一个数字就是答案。class Solution { public: int singleNumber(vector & nums) { sort(nums.begin(),nums.end()); int ans=0; int f=0; int n=nums.size(); int last=nums[0]; for(int i=0;i+3
思路二:
对数组进行排序,遍历数组,用一个last,记录上一次出现的数字,f记录上一个数字出现的次数。 则分为以下几种情况:class Solution { public: int singleNumber(vector & nums) { sort(nums.begin(),nums.end()); int ans=0; int f=1; int n=nums.size(); int last=nums[0]; int ok=0; for(int i=1;i
转载地址:http://lkgsi.baihongyu.com/