zoukankan      html  css  js  c++  java
  • 268. Missing Number

    原文题目:

    268. Missing Number

    读题:

    假设0-n是连续的数字序列,求给定的序列中缺失的数据,比如0,1,3就缺失了2,才能组成连续序列0,1,2,3

    解题:

    1)采用异或的思想,2^2=0,3^3=0,因此将原序列0,1,3分别与标准序列0,1,2,3做异或操作,则可以得出缺失的数据,前提是只有一个数据缺失,题目返回是Int是一个值,并不是vector数组,因此可以用

    2)初始化一个数组大小为n,值都为1,作为标志位,表示0-n的标志,然后遍历给定的数组,如果遇到1,则temp[1]--变为了0,如果遍历下来值temp[j]还是1,说明该值j就是缺失的值。

    class Solution {
    public:
    	int missingNumber(vector<int>& nums) 
    	{
    		int n = nums.size();
    		int i=0;
    		int result =nums[0];
    		for(i=1;i<n;i++)
    		{
    			result ^= nums[i]; 
    		}
    		for(i=0;i<n+1;i++)
    		{
    			result ^= i; 
    		}		
    		return result;
    	}
    };
    int main()
    {
    	
    	Solution s;
    	int result;
    	vector <int> vec;
    	vec.push_back(3);
    	vec.push_back(0);
    	vec.push_back(1);
    	vec.push_back(2);
    	vec.push_back(5);
    	result = s.missingNumber(vec);
    
    	cout << result << endl;
    	getchar();
    }
    

      方法二:

    class Solution {
    public:
    	int missingNumber(vector<int>& nums) 
    	{
    		int i =0;
    		int j =0;
    		int len = nums.size();
    		int result =0;
    		vector <int> temp(len+1,1);
    		for(;i < len;i++)
    		{
    			temp[nums[i]]--;
    		}
    		for(;j<len+1;j++)
    		{
    			if(1 == temp[j])
    			{
    				result = j;
    			}
    		}
    
    		return result;
    	}
    };
    

      

  • 相关阅读:
    14.使用nodejs将规定格式的txt转化为json数据
    13.resize妙用(书上看到的)
    12.写了一个怪怪的边框
    11.一起来抄一个小小的提示菜单
    UI02-textfiled.按钮 uibutton
    UI01-UIview UIlable的属性
    OC9-内存管理
    OC8-属性 KVC是键值编码
    OC7-‍ 类目,延展 协议代理。
    OC6-block-函数指针
  • 原文地址:https://www.cnblogs.com/xqn2017/p/8361510.html
Copyright © 2011-2022 走看看