[LintCode] 寻找缺失的数

 1 class Solution {
 2 public:
 3     /**
 4      * @param nums: a vector of integers
 5      * @return: an integer
 6      */
 7     int findMissing(vector<int> &nums) {
 8         // write your code here
 9         int n = nums.size();
10         int number = 0;
11         for (int i = 0; i <= n; i++)
12             number ^= i;
13         for (int i = 0; i < n; i++)
14             number ^= nums[i];
15         return number;
16     }
17 };
时间: 2024-10-12 17:57:52

[LintCode] 寻找缺失的数的相关文章

lintcode 中等题:find the missing number 寻找缺失的数

题目 寻找缺失的数 给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数. 样例 N = 4 且序列为 [0, 1, 3] 时,缺失的数为2. 注意 可以改变序列中数的位置. 挑战 在数组上原地完成,使用O(1)的额外空间和O(N)的时间. 解题 重新定义一个数组存放排序后的数,空间复杂度和时间复杂度都是O(N) public class Solution { /** * @param nums: an array of integers * @retur

[中等]寻找缺失的数

题目来源:http://www.lintcode.com/zh-cn/problem/find-the-missing-number/ C++版 VS2012测试通过: 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 using namespace std; 5 6 //方法1 7 class Solution { 8 public: 9 /** 10 * @param nums: a

【python-面试题53-循环排序】寻找缺失的数

问题描述: 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字. 示例 1: 输入: [0,1,3]输出: 2示例 2: 输入: [0,1,2,3,4,5,6,7,9]输出: 8 循环排序思想:一般可用循环排序解决的问题是:数值一般在一个区间,且是要你在排好序/翻转过的数组中寻找丢失的/重复的/最小的元素. 例如: a = [6,2,4,3,1,5] for k,v in enume

寻找回文数的python的实现

寻找回文数 寻找回文数也是一个比较好玩的题目,也是学习python的一个简单的filter()函数的应用 解决方法:即按照回文数的特点进行即可. 方法一:一行代码解决 #coding=UTF-8 #寻找回文数 def is_palindrome(n): s=str(n) return s[0:len(s)//2]==s[-1:len(s)//2:-1] #return str(n)==str(n)[::-1] #测试 for i in filter(is_palindrome,range(100

寻找最大的数

#include<iostream>#include<string.h>using namespace std;char c[100],ans[100];int main(){    int len;    cin>>len;    while(len--)    {        cin>>c;        int m;        cin>>m; int len=strlen(c);        int beg=0;        //

推断一组数的规律,并填充缺失的数

最近笔试中遇到这样一系列题型,即数列推理题:给出一组数,找出规律,并填充缺失的数.有些规律好找, 有些则需要动点脑子了.下面我是总结出的一些题及其解决方法. 1).  19.17.15.13.(11) 解析:这里填11,是比较简单的,可以看出来,是一个递减的等差数列,公差为-2. 2).  1/2.1/2.1/4 .1/12 .(1/48) 解析:第0项是:1/2: 第1项是:1/2*1/1,即前一项*1/1: 第2项是:1/2*1/2,即前一项*1/2: 第3项是:1/4*1/3,即前一项*1

ACM寻找连续的数的乘积最大值

Given a sequence of integers S = {S1, S2, . . . , Sn}, you should determine what is the value of the maximum positive product involving consecutive terms of S. If you cannot find a positive sequence, you should consider 0 as the value of the maximum

【ShareCode】不错的技术文章 -- 如何使用异或(XOR)运算找到数组中缺失的数?

如何使用异或(XOR)运算找到数组中缺失的数? 今天给大家分享一篇关于使用XOR(异或)运算找到数组中缺失的数的问题. 在一次Javascript面试中,有这么一个问题: 假设有一个由0到99(包含99)的整数组成的长度为100的数组.从数组中随机移除一个元素,得到了一个长度为99的数组,那么请问如何找到所取出的数字是几?(假设数组未排序). 大多数面试者都是按照如下方法解答的: 首先对数组进行排序,然后遍历一遍数组,检查数组中相邻两项的的差,如果差大于1,则找到缺失的数字. 这是一种有效的算法

Missing number - 寻找缺失的那个数字

需求:给出一个int型数组,包含不重复的数字0, 1, 2, ..., n:找出缺失的数字: 如果输入是[0, 1, 2] 返回 3 输入数组 nums = [0, 1, 2, 4] :应该返回 3 输入nums = [2, 0] :应该返回 1 输入nums = [1, 0]:应该返回 2 方法1:先排序,再线性寻找 元素不一定按顺序排列: 先对数组进行排序,再按顺序寻找 import java.util.Arrays; public class Solution { public int m