0
点赞
收藏
分享

微信扫一扫

【Kubernetes】CICD分析

哈希表用法

#include<iostream>
#include<unordered_map> //无序哈希,
//在哈希表中不一定按照你输入的顺序存储的,是随机存储的但是每次输出的顺序不随机都是一致的
#include<map>  //有序哈希:默认按照键从小到大存储

using namespace std;

int main()
{
	unordered_map<int, int> u_map;
    
	u_map[9]++; //可以使用这种方式计数

	//find() ,find函数的返回值是迭代器,参数是key,
	//如果哈希表中存在键值为key的键值对,返回指向这个键值对的迭代器,否则返回和end()一样的迭代器

	if (u_map.find(79) != u_map.end())
	{
		cout << "找到了" << endl;
	}
	else
	{
		cout << "没找到" << endl;
	}
	return 0;
}

两数之和 

1. 两数之和icon-default.png?t=N7T8https://leetcode.cn/problems/two-sum/

        给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

        你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

        你可以按任意顺序返回答案。

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
       map<int,int>m;
       for(int i=0;i<nums.size();i++)
       {
            if(m.find(target-nums[i])!=m.end())
                return {m[target-nums[i]],i};
            else
                m[nums[i]]=i;
       }
       return {};
    }
};

重复元素 

217. 存在重复元素icon-default.png?t=N7T8https://leetcode.cn/problems/contains-duplicate/

        给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        map<int,int>m;
        for(int i=0;i<nums.size();i++)
        {
            m[nums[i]]++;
            if(m[nums[i]]>=2)
                return true;
        }
        return false;
    }
};

219. 存在重复元素 IIicon-default.png?t=N7T8https://leetcode.cn/problems/contains-duplicate-ii/

        给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。

class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
        map<int,int>m;
       for(int i=0;i<nums.size();i++)
       {
        if(m.find(nums[i])!=m.end() && i-m[nums[i]]<=k)
            return true;
        else
         m[nums[i]]=i;
       }
       return false;
    }
};

举报

相关推荐

0 条评论