当前位置: 首页 > news >正文

专门提供做ppt小素材的网站网站定位

专门提供做ppt小素材的网站,网站定位,wordpress设置目录,长沙网站建设的公司今天是基础数据结构的最后一个。至此我们的基础数据结构系列就结束了!!! 这几天先告一段落#xff0c;等期末考试完继续更新算法系列。 哈希表又叫散列表#xff0c;通常用数组来实现#xff0c;又叫做哈希数组。 一、概念 常用哈希函数 1、直接定址法#xff1b; 关键字…今天是基础数据结构的最后一个。至此我们的基础数据结构系列就结束了!!! 这几天先告一段落等期末考试完继续更新算法系列。 哈希表又叫散列表通常用数组来实现又叫做哈希数组。 一、概念 常用哈希函数 1、直接定址法 关键字本身就是哈希值例如f(x) x; 2、平方取中法 3、折叠法 4、除留取余法常用 f(x) x % m 5、位与法 哈希冲突解决方法 1、开放定址法 如果发生冲突则寻找下一个空地址。 2、链地址法 发生冲突后不换地址使用链表将链接到当前的值的后面 第一题 41. 缺失的第一个正数 int hash[500002]; //定义哈希数组int firstMissingPositive(int* nums, int numsSize) {memset(hash, 0, sizeof(hash)); //初始化为0// 遍历数组,传入哈希for(int i 0; i numsSize; i) {int v nums[i];//如果值负数或大于500000,那后面就不用看了,因为数组长度只有500000,里面必定有空值。if(nums[i] 0 || nums[i] 500000) {continue;}hash[ v ] 1;}for(int i 1; ; i) {if(!hash[i]) {return i;}}return -1; }第二题 387. 字符串中的第一个唯一字符 int firstUniqChar(char* s) {int hash[26];memset(hash, 0, sizeof(hash));//遍历数组的方法如果出现一次字符则1for(int i 0; s[i]; i) {hash[s[i] - a];}// 遍历数组判断当前对应的哈希表是否为1返回索引值即可for(int i 0; s[i]; i) {if(hash[s[i] - a] 1) {return i;}}return -1; }第三题 215. 数组中的第K个最大元素 #define BASE 10000 int hash[2 * BASE 5];int findKthLargest(int* nums, int numsSize, int k) {memset(hash, 0, sizeof(hash));for(int i 0; i numsSize; i) {int index nums[i] BASE;hash[index];}for(int i 2 * BASE; i 0; --i) {while( hash[i] ) {k--;hash[i]--;if( k 0 ) {return i - BASE;}}}return -1; }第四题 1. 两数之和 hash[i]代表数字i hash[i] target; /*** Note: The returned array must be malloced, assume caller calls free().*/ //实现哈希表 #define BIT 16 //定义16位,我也不知道什么意思 #define MASK ((1 BIT) - 1) //说是掩码,就是2^16 - 1 65535 #define MAGIC 1000000001 //定义一个边界,用于初始化哈希表 int hash[MASK 1]; //创建哈希表//初始化哈希表 void HashInit() {//里面的值都赋值为取不到的值,表示为空for(int i 0; i MASK; i) {hash[i] MAGIC;} }int HashFindAndInsert( int x ) {int v x MASK; //于操作,等于将x变为正数,如果不是负数则就是xwhile(1) {//如果当前哈希数组为空则插入if(hash[v] MAGIC) {hash[v] x;return v;}else if(hash[v] x) { //如果是x表明已经插入了,直接返回return v;}v (v 1) * MASK; //如果不满足要求,v往前移动一位,直到满足要求} }int pos[MASK 1]; int* twoSum(int* nums, int numsSize, int target, int* returnSize) {int *ret (int *)malloc(sizeof(int) * 2);*returnSize 2;HashInit();memset(pos, -1, sizeof(pos));for(int i 0; i numsSize; i) {int idx HashFindAndInsert(target - nums[i]); //得到target - b a里面的aif(pos[idx] ! -1) {ret[0] pos[idx];ret[1] i;return ret;}//pos[ HashFindAndInsert(nums[i]) ] i;}*returnSize 0;return ret; }
http://www.pierceye.com/news/305897/

相关文章:

  • 山西网站建设怎么样seo优化网站多少钱
  • 网站建设设计模板磁力链最佳的搜索引擎
  • 单位外部网站建设价格哪些网站可以做视频直播
  • 广州黄埔网站建设公司国外做调灵风暴的网站
  • 珠海附近交友平台软件广州网站优化推广方案
  • cgi做网站如何将网站加入百度图 推广
  • 小贷做网站深圳手机app软件开发
  • 上海平台网站建设费用页面模板不存在怎么办
  • 西安网站排名公司上海工商网查询官网
  • 网站建设协调机制建网站 可以看到访客吗
  • 学生做网站的工作室南和住房和城乡建设局网站
  • 潍坊网站制作案例广东十大网站建设排名
  • 网站建设市场调研框架网站建设流程步骤怎么样
  • 喜茶品牌策划全案案例seo技术
  • 简速做网站中国企业网站建设案例
  • 做网站不给源码莱州网站建设包年多少钱
  • 好玩有趣的网站贵州省城乡建设厅网站材料价
  • 投资公司网站设计上海自动seo
  • 网络营销导向网站建设的基础是什么创新驱动发展战略的内容
  • 银狐鑫诺科技 网站建设深圳画册设计价格
  • 邵阳网站建设推广优化游戏性能的软件
  • wp做网站难吗销售产品单页面网站模板
  • 网站子域名 更换网站开发什么方式
  • 学做面食最好的网站设计公司logo大全
  • wordpress建站入门手机网站跳转怎么办
  • 好网站开发培训wordpress是否免费
  • 建设国际互联网网站网站建设制作流程
  • 开发一个网站做爬虫手机网站建设视频
  • 网站搜索功能模块公众号开发菜单
  • 公司想做个自己的网站怎么做网络营销与管理专业