当前位置:网站首页>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};
}
}
边栏推荐
- TCP congestion control details | 3 design space
- 面试之 top k问题
- Initial test of scikit learn Library
- Zebras are recognized as dogs, and Stanford found the reason why AI made mistakes
- Le zèbre a été identifié comme un chien, et la cause de l'erreur d'AI a été trouvée par Stanford
- 如何在本机搭建SVN服务器
- Yu Wenwen, Hu Xia and other stars take you to play with the party. Pipi app ignites your summer
- IDEA-配置插件
- PHP中register_globals参数设置
- Pointcut expression
猜你喜欢

PyTorch 1.12发布,正式支持苹果M1芯片GPU加速,修复众多Bug

One article takes you to understand machine learning

Slam learning notes - build a complete gazebo multi machine simulation slam from scratch (I)

8个酷炫可视化图表,快速写出老板爱看的可视化分析报告

探索Cassandra的去中心化分布式架构

MySQL converts comma separated attribute field data from column to row

Slam learning notes - build a complete gazebo multi machine simulation slam from scratch (4)

Initial test of scikit learn Library

消息队列消息丢失和消息重复发送的处理策略

Record windows10 installation tensorflow-gpu2.4.0
随机推荐
斑馬識別成狗,AI犯錯的原因被斯坦福找到了
面试之 top k问题
To resist 7-Zip, list "three sins"? Netizen: "is the third key?"
There are several APIs of airtest and poco that are easy to use wrong in "super". See if you have encountered them
Initial test of scikit learn Library
2022爱分析· 国央企数字化厂商全景报告
疫情常态化大背景下,关于远程办公的思考|社区征文
2022 love analysis · panoramic report of digital manufacturers of state-owned enterprises
Custom plug-in construction and use of QT plug-in
【剑指 Offer 】64. 求1+2+…+n
Construction practice camp - graduation summary of phase 6
[proteus simulation] 8 × 8LED dot matrix screen imitates elevator digital scrolling display
Eleven requirements for test management post
Idea configuration plug-in
Thread pool executes scheduled tasks
Mixlab编辑团队招募队友啦~~
[statement] about searching sogk1997 and finding many web crawler results
Explore Netease's large-scale automated testing solutions see here see here
NFT新的契机,多媒体NFT聚合平台OKALEIDO即将上线
[sword finger offer] 58 - I. flip the word order