从今天起,每天坚持一道算法题,有时间就发到博客中,坚持!!!为了以后面试更从容。
先来一道简单的:
136. Single Number
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
分析:题目很简单,给一个整型数组,其中一个数字出现一次,其它都是成对出现。找出单独出现的数字。
题目要求两点:1、线性时间复杂度;2、不要用额外的存储空间。
我们很容易想到,成对出现的数字相减等于0,所以只要成对相减完,剩下的就是单独出现的数字。
我能想到的最简单思路:
1、将数组排序,从大到小,从小到大均可;
2、设置步长为2,两两相减,等于0则调整步长,否则找到单独出现的数字;
3、收尾:若单独出现的数字出现在最后一个,直接返回。
代码如下:
public class Solution { public int singleNumber(int[] nums) { Arrays.sort(nums); int index = 0; while (index < nums.length - 1) { if (nums[index] - nums[index + 1] == 0) { index = index + 2; } else { return nums[index]; } } return nums[index]; } }
排序直接使用Arrays.sort,如果大家有其他更好思路,欢迎拍砖,谢谢!
相关推荐
javascript js_leetcode题解之136-single-number.js
python python_leetcode题解之136_Single_Number
颜色分类leetcode leetcode.etc My solutions of the problems in Online judge website, leetcode, lintcode, etc. leetcode: 13 problems solved lintcode: 49 problems solved Title URL Solution Difficulty ...
136 | [Single Number](https://leetcode.com/problems/single-number/) | [C++](./C++/single-number.cpp) [Python](./Python/single-number.py) | _O(n)_ | _O(1)_ | Easy ||| 137 | [Single Number II]...
《位运算处理数组中的数——以LeetCode Single Number II为例》 在计算机科学中,位运算是一种高效且灵活的数据处理手段,尤其在处理数组中特定数值的问题时,它能展现出强大的能力。LeetCode上的Single Number II...
leetcode 答案leetcode-java leetcode.com 的 Java 答案 ================索引================ ...Single Number com.leetcode.tree Balanced Binary Tree Maximum Depth of Binary Tree Same Tree
python python_leetcode题解之137_Single_Number_II
根据提供的文件信息,我们能提炼出一系列IT相关知识点,主要是围绕LeetCode这本电子书的主题——即编程面试题目解答。此电子书内容丰富,涵盖了算法和数据结构中常见的问题及其解决方案,非常适合准备技术面试的读者...
2. LeetCode No136. Single Number 问题描述:给定一个整数数组,其中只有一个数字出现一次,其余数字出现两次,找到那个只出现一次的数字。 解决方案:同样利用异或运算的性质,数组中所有元素的异或结果就是那个...
LeetCode去除数组重复元素 Arithmetic-Swift 一些算法的swift实现 桶排序 冒泡排序 快速排序 ##正好看见LeetCode可以刷Swift的题目 开始慢慢刷 swift有playground ...Single Number 石头游戏 292. Nim Gam
def singleNumber(nums): single_num = 0 for num in nums: single_num ^= num return single_num ``` 在这个代码中,`single_num`初始值为0,然后遍历整个数组`nums`,对每个元素执行异或操作。由于每个元素...
function singleNumber($nums) { $result = 0; foreach ($nums as $num) { $result ^= $num; } return $result; } ``` 这段代码中,`$result`初始值为0,然后遍历数组`$nums`,对每个元素执行异或操作,最终...
public int singleNumber(int[] nums) { int res = 0; for (int n : nums) { res = res ^ n; } return res; } ``` **解析:** 这段代码巧妙地利用了异或运算的特性来解决问题。异或运算有以下特点: 1. 任何数...
Single Number等。这类题目通常要求读者使用排序和查找算法来解决问题,例如使用快速排序、归并排序、-binary-search等算法。 本文总结了Google Onsite面经的各种题目,涵盖了LeetCode原题中的多个类题目,具有很...
136_single_number.py # 位操作:异或(xor)操作 x ^ 0 = x; x ^ x = 0 sum 001_two_sum.py # 求list中能加和成指定值的两个位置 015_3_sum**.py # 求list中能加和成0的三个值 数列 004_median_of_two_sorted_arrays....
Leetcode的ac是什么意思 LeetCodeInJava List #98 Validate Binary Search Tree #100 Same Tree #104 Maximum Depth of Binary Tree #122 Best Time to Buy and Sell Stock II #136 Single Number #150 Evaluate ...
3. **Single Number**:在一个只包含两个重复数字的整数列表中找到唯一的单个数字。利用Python的位运算,可以实现快速查找单数。 4. **Same Tree**:判断两棵树是否结构相同且对应节点值相等。这涉及到深度优先搜索...
int singleNumber(vector<int>& nums) { int result = 0; for (int num : nums) { result ^= num; } return result; } ``` 2. **使用异或查找字符串中的新增字符**: 类似于找到数组中唯一数字的方法,...
function singleNumber(nums) { let i = 0, j = nums.length - 1; while (i ) { if (nums[i] === nums[j]) { i++; j--; } else { return nums[i] !== nums[++i] ? nums[i] : nums[j]; } } return nums[i];...
根据提供的文件内容,可以整理出以下IT知识点,针对LeetCode算法题目的解题方法、时间复杂度、空间复杂度的分析,以及算法相关基础知识点的总结。 一、数组/字符串 ***o Sum:需要查找数组中两个数相加等于特定值的...