LeeCode-Single Number II

本文介绍了一种算法,用于在给定整数数组中找出仅出现一次的唯一元素,所有其他元素均出现三次。通过一系列比较和交换操作,算法能够高效地筛选出目标数字。

Given an array of integers, every element appears three times except for one. Find that single one.

 1 int singleNumber(int* nums, int numsSize) 
 2 {
 3     if(numsSize==1)
 4         return nums[0];
 5     int i,j,k;
 6     for(i=1;i<numsSize;i++)
 7     {
 8         for(j=i-1;j>=0;j--)
 9         {
10             if(nums[i]>=nums[j])
11             {
12                 break;
13             }
14         }
15 
16         if(j!=i-1)
17         {
18             int temp=nums[i];
19             for(k=i-1;k>j;k--)
20             {
21                 nums[k+1]=nums[k];
22             }
23             nums[k+1]=temp;
24         }
25     }
26 
27     if(nums[0]!=nums[1])
28     {
29         return nums[0];
30     }
31     else
32     {
33         for(i=0;i<numsSize-1;i++)
34         {
35             if((nums[i]==nums[i+1])||(nums[i+1]==nums[i+2]))
36             {
37                 continue;
38             }
39             else
40             {
41                 return nums[i+1];
42             }
43         }
44     }
45 }

 

转载于:https://www.cnblogs.com/vpoet/p/4660497.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值