前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >哈希算法:竞猜逻辑哈希游戏开发的应用

哈希算法:竞猜逻辑哈希游戏开发的应用

原创
作者头像
KFZ433
发布2022-06-16 14:19:06
3200
发布2022-06-16 14:19:06
举报
文章被收录于专栏:NFT链游的应用

简单来说,哈希函数就是快速的将1个数值转换为1个哈希值,哈希值是整数,并且要保证,相同的输入得到的哈希值是一样的,如果两个不同的输入得到了相同的结果,这就是哈希值冲突。我们应该通过精心的设计去减少冲突,但是不能完全避免,如何处理冲突是一个重点,后面会详细说到。

  也就是说,输入键(key),然后经过哈希函数计算,最后得到哈希值,而哈希值是整数,通过哈希值当做数组下标,得到对应的值。

  输入key,经过哈希函数计算fun(key),最后得到y。要把y取余,y%arr.Length,免得超出数组最大长度,最后把y当做数组下标去访问数组里对应的值,这就是整个过程了。

  按照这种思想,采用哈希技术将值存储在一块连续的存储空间中,这块连续的存储空间称为哈希表或者散列表。关键字对应的存储位置称为哈希地址或者散列地址。

  区块链哈希是什么?如果是刚开始了解区块链,就需要结合“区块”的概念来一起理解了。每一个区块,包含的内容有数据信息,本区块的哈希值以及上一个区块的哈希值。区块中的数据信息,主要是交易双方的地址与此次交易数量还有交易时间信息等。而哈希值就是寻找到区块,继而了解到这些区块信息的钥匙。

  代码如下:

  class Solution{

  public:

  vector<vector<int>>threeSum(vector<int>&nums){

  vector<vector<int>>result;

  sort(nums.begin(),nums.end());

  //找出a+b+c=0

  //a=nums<i>,b=nums[left],c=nums[right]

  for(int i=0;i<nums.size();i++){

 

 //排序之后如果第一个元素已经大于零,那么无论如何组合都不可能凑成三元组,直接返回结果就可以了

  if(nums<i>>0){

  return result;

  }

  //错误去重方法,将会漏掉-1,-1,2这种情况

  /*

  if(nums<i>==nums[i+1]){

  continue;

  }

  */

  //正确去重方法

  if(i>0&&nums<i>==nums[i-1]){

  continue;

  }

  int left=i+1;

  int right=nums.size()-1;

  while(right>left){

  //去重复逻辑如果放在这里,0,0,0的情况,可能直接导致right<=left了,从而漏掉了0,0,0这种三元组

  /*

  while(right>left&&nums[right]==nums[right-1])right--;

  while(right>left&&nums[left]==nums[left+1])left++;

  */

  if(nums<i>+nums[left]+nums[right]>0){

  right--;

  }else if(nums<i>+nums[left]+nums[right]<0){

  left++;

  }else{

  result.push_back(vector<int>{nums<i>,nums[left],nums[right]});

  //去重逻辑应该放在找到一个三元组之后

  while(right>left&&nums[right]==nums[right-1])right--;

  while(right>left&&nums[left]==nums[left+1])left++;

  //找到答案时,双指针同时收缩

  right--;

  left++;

  }

  }

  }

  return result;

  }

  };

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档