当前位置:网站首页>2022.02.14_ Daily question leetcode five hundred and forty
2022.02.14_ Daily question leetcode five hundred and forty
2022-07-03 16:36:00 【Promise い】
Title Description
- A single element in an ordered array
Give you an ordered array of integers only , Each of these elements will appear twice , Only one number will appear once .
Please find and return the number that only appears once .
The solution you design must meet O(log n) Time complexity and O(1) Spatial complexity .
Example 1:
Input : nums = [1,1,2,3,3,4,4,8,8]
Output : 2
Example 2:
Input : nums = [3,3,7,7,10,11,11]
Output : 10
Tips :
1 <= nums.length <= 10^5
0 <= nums[i] <= 10^5
Answer key 1
Ideas
Use dichotomy , Ensure that the array is in left
To right
The length of is odd , Through the middle mid
Divide the boundary , Judge the length of the left and right sub arrays respectively , Judge the corresponding according to the length mid
Nearby values , Find out the result should be in mid
Left or right .
Code
class Solution {
public int singleNonDuplicate(int[] nums) {
if (nums.length == 1){
return nums[0];
}
int left = 0;
int right = nums.length - 1;
while (left < right){
int mid = left + ((right - left) >> 1);
if ((mid - left + 1) % 2 == 0){
if (nums[mid] != nums[mid - 1]){
right = mid - 1;
}else {
left = mid + 1;
}
}else {
if (nums[mid] != nums[mid - 1]){
left = mid;
}else {
right = mid;
}
}
}
return nums[left];
}
}
Running results
Answer key 2
Ideas
Because the array is ordered , Therefore, it can be judged by every two numbers , According to whether the XOR result is 0 To determine the result
principle :
N ^ N == 0
N ^ 0 == N
(A ^ B) ^ C == A ^ (B ^ C)
A ^ B == B ^ A
Code
class Solution {
public int singleNonDuplicate(int[] nums) {
int res = 0;
for (int i : nums) {
res = i ^ res;
}
return res;
}
}
Running results
expand
package com.nuo.Demo;
import java.util.Arrays;
import java.util.Stack;
/** * @author nuo * @version 1.0 * @description: TODO XOR search * @date 2022/1/5 16:49 */
public class s_02{
// An array of integers , Only one number appears an odd number of times , Other numbers appear an even number of times , Find this number
public static int select_1(int[] arr) {
int eor = 0;
for (int i : arr) {
eor = eor ^ i;
}
return eor;
}
// An array of integers , There are only two numbers (a , b) An odd number of times , Other numbers appear an even number of times , Find this number
public static int[] select_2(int[] arr) {
int eor = 0;
for (int i : arr) {
eor = eor ^ i;
} // => eor = a ^ b != 0 => eor One must be '1'
// Original code & Complement code
int rightOne = eor & (~eor + 1); // => Extract the rightmost 1 , The number of these two is different
// eg. eor = 1001 => ~eor = 0110 => ~eor + 1 = 0111 => eor & (~eor + 1) = 0001
int eor_ = 0;
for (int j : arr) {
if ((rightOne & j) == 0) {
eor_ = eor_ ^ j;
}
}
return new int[]{
eor_ , eor_ ^ eor};
}
}
边栏推荐
- 线程池执行定时任务
- Why does the std:: string operation perform poorly- Why do std::string operations perform poorly?
- 0214-27100 a day with little fluctuation
- To resist 7-Zip, list "three sins"? Netizen: "is the third key?"
- Custom plug-in construction and use of QT plug-in
- 如何在本机搭建SVN服务器
- 香港理工大学|数据高效的强化学习和网络流量动态的自适应最优周界控制
- [statement] about searching sogk1997 and finding many web crawler results
- Unreal_ Datatable implements ID self increment and sets rowname
- 拼夕夕二面:说说布隆过滤器与布谷鸟过滤器?应用场景?我懵了。。
猜你喜欢
Record windows10 installation tensorflow-gpu2.4.0
Basis of target detection (IOU)
word 退格键删除不了选中文本,只能按delete
Détails du contrôle de la congestion TCP | 3. Espace de conception
Slam learning notes - build a complete gazebo multi machine simulation slam from scratch (4)
One article takes you to understand machine learning
Slam learning notes - build a complete gazebo multi machine simulation slam from scratch (III)
Data driving of appium framework for mobile terminal automated testing
【声明】关于检索SogK1997而找到诸多网页爬虫结果这件事
To resist 7-Zip, list "three sins"? Netizen: "is the third key?"
随机推荐
相同切入点的抽取
Golang 匿名函数使用
8 cool visual charts to quickly write the visual analysis report that the boss likes to see
How programming apes grow rapidly
PHP secondary domain name session sharing scheme
(Supplement) double pointer topic
Cocos Creator 2.x 自动打包(构建 + 编译)
QT serial port UI design and solution to display Chinese garbled code
PHP CI(CodeIgniter)log级别设置
爱可可AI前沿推介(7.3)
Pytorch 1.12 was released, officially supporting Apple M1 chip GPU acceleration and repairing many bugs
One article takes you to understand machine learning
Unity项目优化案例一
[Jianzhi offer] 58 - ii Rotate string left
[combinatorics] non descending path problem (outline of non descending path problem | basic model of non descending path problem | non descending path problem expansion model 1 non origin starting poi
SVN使用规范
Mongodb installation and basic operation
Processing strategy of message queue message loss and repeated message sending
香港理工大学|数据高效的强化学习和网络流量动态的自适应最优周界控制
拼夕夕二面:说说布隆过滤器与布谷鸟过滤器?应用场景?我懵了。。