当前位置:网站首页>Vanishing numbers
Vanishing numbers
2022-07-04 09:47:00 【skeet follower】
Array nums
Contains from 0
To n
All integers of , But one of them is missing . Please write code to find the missing integer .
The required time complexity is O(n), The space complexity is O(1).
Example 1:
Input :[3,0,1] Output :2
Example 2:
Input :[9,6,4,2,3,5,7,0,1] Output :8
Train of thought :
Using the properties of XOR ,res = res ^ x ^ x. XOR the same value twice , Then the result is equal to itself , So we are right res from 0-nums.length To engage in exclusive or , At the same time nums XOR the values in the array , If there is a repetition, it will disappear , So finally res The value of is a number that appears only once , That is to say nums The missing number in the array .
int missingNumber(int* nums, int numsSize){
int ret=0;
int i=0;
for(i=0;i<=numsSize;i++){
ret^=i;
}
for(i=0;i<numsSize;i++)
{
ret^= nums[i];
}
return ret;
}
int missingNumber(int* nums, int numsSize){
int ret=0;
int i=0;
for(i=1;i<=numsSize;i++){
ret^=i;
ret^=nums[i-1];
}
return ret;
}
int missingNumber(int* nums, int numsSize){
int ret=0;
int i=0;
for(i=0;i<numsSize;i++){
ret^=i;
ret^=nums[i];
}
ret^=numsSize;
return ret;
}
Train of thought two :
Before finding out n+1 Sum of numbers , Subtract the number in the array , It's the disappearing number .
int missingNumber(int* nums, int numsSize){
int i=0;
int sum=0;
for(i=0;i<numsSize+1;i++){
sum+=i;
}
for(i=0;i<numsSize;i++){
sum-=nums[i];
}
return sum;
}
Train of thought three :
Open up another large space array , The number of the original array is used as the index of the new array , Then mark it as 1, Then traverse the new array instead of 1 The index of is what you want .
int missingNumber(int* nums, int numsSize){
int i;
int* tmp=(int* )malloc(sizeof(int)*(numsSize+1));
for(i=0;i<numsSize;i++){
tmp[nums[i]]=1;
}
for(i=0;i<numsSize;i++){
if(tmp[i]!=1)
break;
}
return i;
}
Train of thought four :
Hashtable
int missingNumber(int* nums, int numsSize){
int f[10000]={0};
int i;
for(i=0;i<numsSize;i++){
f[nums[i]]++;
}
for(i=0;i<10000;i++){
if(f[i]==0)
break;
}
return i;
}
Is there any good way , Leave a message in the comment area and we will discuss .
边栏推荐
- Global and Chinese market of planar waveguide optical splitter 2022-2028: Research Report on technology, participants, trends, market size and share
- Kotlin: collection use
- Kotlin 集合操作汇总
- Kotlin set operation summary
- el-table单选并隐藏全选框
- Application of safety monitoring in zhizhilu Denggan reservoir area
- Hands on deep learning (46) -- attention mechanism
- Hands on deep learning (35) -- text preprocessing (NLP)
- Deadlock in channel
- Pueue data migration from '0.4.0' to '0.5.0' versions
猜你喜欢
自动化的优点有哪些?
Advanced technology management - how to design and follow up the performance of students at different levels
2022-2028 global small batch batch batch furnace industry research and trend analysis report
Regular expression (I)
MySQL foundation 02 - installing MySQL in non docker version
2022-2028 global visual quality analyzer industry research and trend analysis report
Fabric of kubernetes CNI plug-in
El Table Radio select and hide the select all box
Hands on deep learning (39) -- gating cycle unit Gru
C # use gdi+ to add text to the picture and make the text adaptive to the rectangular area
随机推荐
MySQL foundation 02 - installing MySQL in non docker version
2022-2028 global industry research and trend analysis report on anterior segment and fundus OTC detectors
Flutter 小技巧之 ListView 和 PageView 的各種花式嵌套
C语言指针面试题——第二弹
PHP book borrowing management system, with complete functions, supports user foreground management and background management, and supports the latest version of PHP 7 x. Database mysql
2022-2028 global strain gauge pressure sensor industry research and trend analysis report
libmysqlclient.so.20: cannot open shared object file: No such file or directory
Rules for using init in golang
Kubernetes CNI 插件之Fabric
Hands on deep learning (34) -- sequence model
MATLAB小技巧(25)竞争神经网络与SOM神经网络
Hands on deep learning (33) -- style transfer
2022-2028 global tensile strain sensor industry research and trend analysis report
Exercise 9-5 address book sorting (20 points)
C # use gdi+ to add text to the picture and make the text adaptive to the rectangular area
技术管理进阶——如何设计并跟进不同层级同学的绩效
H5 audio tag custom style modification and adding playback control events
JDBC and MySQL database
2022-2028 global gasket metal plate heat exchanger industry research and trend analysis report
QTreeView+自定义Model实现示例