当前位置:网站首页>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 air fryer 2022-2028: Research Report on technology, participants, trends, market size and share
- Exercise 9-1 time conversion (15 points)
- Write a jison parser from scratch (2/10): learn the correct posture of the parser generator parser generator
- MySQL develops small mall management system
- Upgrading Xcode 12 caused Carthage to build cartfile containing only rxswift to fail
- Intelligent gateway helps improve industrial data acquisition and utilization
- Golang Modules
- How do microservices aggregate API documents? This wave of show~
- About the for range traversal operation in channel in golang
- SQL replying to comments
猜你喜欢
El Table Radio select and hide the select all box
Ultimate bug finding method - two points
Kubernetes CNI 插件之Fabric
Advanced technology management - how to design and follow up the performance of students at different levels
Mmclassification annotation file generation
Fabric of kubernetes CNI plug-in
2022-2028 global strain gauge pressure sensor industry research and trend analysis report
2022-2028 global industry research and trend analysis report on anterior segment and fundus OTC detectors
Baidu R & D suffered Waterloo on three sides: I was stunned by the interviewer's set of combination punches on the spot
智慧路灯杆水库区安全监测应用
随机推荐
Daughter love: frequency spectrum analysis of a piece of music
Hands on deep learning (32) -- fully connected convolutional neural network FCN
IIS configure FTP website
Exercise 8-7 string sorting (20 points)
Multilingual Wikipedia website source code development part II
PHP personal album management system source code, realizes album classification and album grouping, as well as album image management. The database adopts Mysql to realize the login and registration f
Fatal error in golang: concurrent map writes
Go context 基本介绍
Global and Chinese market of planar waveguide optical splitter 2022-2028: Research Report on technology, participants, trends, market size and share
Write a jison parser from scratch (6/10): parse, not define syntax
How can people not love the amazing design of XXL job
Explanation of for loop in golang
C # use ffmpeg for audio transcoding
MySQL transaction mvcc principle
DR6018-CP01-wifi6-Qualcomm-IPQ6010-IPQ6018-FAMILY-2T2R-2.5G-ETH-port-CP01-802-11AX-MU-MIMO-OFDMA
Normal vector point cloud rotation
回复评论的sql
Hands on deep learning (44) -- seq2seq principle and Implementation
Hands on deep learning (36) -- language model and data set
PHP is used to add, modify and delete movie information, which is divided into foreground management and background management. Foreground users can browse information and post messages, and backgroun