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

做个公司网站要多少钱谷歌关键词排名查询

做个公司网站要多少钱,谷歌关键词排名查询,上海公司建立网站吗,驴妈妈旅游网官网目录 1、HashMap的基本方法 1.1、基础方法(增删改查) 1.2、其他方法 2、HashMap的相关例题 2.1、题目介绍 2.2、解题 2.2.1、解题思路 2.2.2、解题图解 2.3、解题代码 1、HashMap的基本方法 HashMap 是一个散列表,它存储的内容是键…

 

目录

1、HashMap的基本方法

1.1、基础方法(增删改查)

1.2、其他方法 

2、HashMap的相关例题

2.1、题目介绍

2.2、解题

2.2.1、解题思路

2.2.2、解题图解

2.3、解题代码

1、HashMap的基本方法

HashMap 是一个散列表,它存储的内容是键值(key-value)映射。
HashMap 的 key 与 value 类型可以相同也可以不同,根据定义,不受限制。

1.1、基础方法(增删改查)

1.定义一个哈希表

HashMap<Integer, String> hashmap= new HashMap<Integer, String>();

2.添加键值对(key-value)(增)

hashmap.put(1, "string1"); // 执行完后hash表内为{1=string1}
hashmap.put(2, "string2"); // 执行完后hash表内为{1=string1, 2=string2}
hashmap.put(2, "string2"); // 执行完后hash表内为{1=string1, 2=string2, 3=string3}

3.根据key值访问value(查)

hashmap.get(1); // 返回string1
hashmap.get(2); // 返回string2
hashmap.get(3); // 返回string3

4.根据key值删除元素(删)

hashmap.remove(1); // 执行完后hash表内为{2=string2, 3=string3}
hashmap.remove(2); // 执行完后hash表内为{3=string3}
hashmap.remove(3); // 执行完后hash表内为{}
// 删除所有键值对
hashmap.clear();

5.替换 hashMap 中是指定的key对应的 value(改)

hashmap.replace(key,value); // 返回0

6.返回hashmap中键值对的数量

hashmap.size(); // 返回0

7.getOrDefault(Object key, V defaultValue)
此方法用于当Map集合中有这个key时,就使用这个key对应的value值,如果没有就使用默认值defaultValue;

hashmap.getOrDefault(key,defaultValue);

1.2、其他方法 

1.检查hashMap中是否存在指定的key对应的映射关系

hashmap.containsKey(key); 

2.检查hashMap中是否存在指定的value对应的映射关系

hashmap.containsValue(value); 

3.hashmap是否为空

hashmap.isEmpty(); 

4.HashMap.values() 方法

hashmap.values(); // 返回所有Value值组成的集合

例如:
 如果有HashMap: {1=Google, 2=Runoob, 3=Taobao}
 则返回Values: [Google, Runoob, Taobao]

2、HashMap的相关例题

2.1、题目介绍

原题链接:128. 最长连续序列 - 力扣(LeetCode)

示例 1:

输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是[1, 2, 3, 4]。它的长度为 4。

示例 2:

输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9

提示:

  • 0 <= nums.length <= 105
  • -109 <= nums[i] <= 109

2.2、解题

2.2.1、解题思路

使用一个HashMap存储当前遍历过的数字,如果hashMap中已经存在这个数字,说明之前已经处理过这个数字,不做任何处理【是为了防止出现重复数字再次计算造成错误】
每次遍历到新数字时,去hashMap中寻找比它小1的数字和比它大1的数字对应的长度,记为min和max。
如果min、max均为0,说明此时不存在上下界,直接记为1.
当出现min、max不为0时,说明与当前数字有新的上下界,计算出上下界所对应的数字,并在map中修改对应的上下界大小。 

若不存在上下界:直接更新为1;
若存在上界不存在下界:更新上界数字长度+1,即max + 1;
若存在下界不存在上界:更新下界数字长度+1,即min + 1;
若上下界均存在:同时更新上下界长度为下界长度+上界长度+1,即min + max + 1

2.2.2、解题图解

数组nums从i=0开始遍历,has为哈希表,result用来保存最后的结果,min用来保存键值(key)为 nums[ i-1 ] 在哈希表中所对应的值(value) ;max用来保存键值(key)为 nums[ i+1 ] 在哈希表中所对应的值(value) ,now保存当前循环最长连续序列的结果用于和result进行比较 

 

当前的 i = 0 ,nums[ i ] = 100,   has 中没有 key 为 100 的项,所以让 min = has.getOrDefault(nums[i]-1, 0);max = has.getOrDefault(nums[i]+1, 0);由于 has 中没有 key 为 99(nums[i]-1) 的项, 所以 min = 0 ;由于 has 中没有 key 为 101(nums[i]+1) 的项, 所以 max = 0 ;因此 now = 1 ;然后在 has 中添加 key = 100,value = 1 的项;result 小于 now,所以让 result = now = 1

当前的 i = 1 ,nums[ i ] = 4,   has 中没有 key 为 4 的项,所以让 min = has.getOrDefault(nums[i]-1, 0);max = has.getOrDefault(nums[i]+1, 0);由于 has 中没有 key 为 3(nums[i]-1) 的项, 所以 min = 0 ;由于 has 中没有 key 为 5(nums[i]+1) 的项, 所以 max = 0 ;因此 now = 1 ;然后在 has 中添加 key = 4,value = 1 的项;result 等于 now,所以 result 不变

当前的 i = 2 ,nums[ i ] = 200,   has 中没有 key 为 200 的项,所以让 min = has.getOrDefault(nums[i]-1, 0);max = has.getOrDefault(nums[i]+1, 0);由于 has 中没有 key 为 199(nums[i]-1) 的项, 所以 min = 0 ;由于 has 中没有 key 为 201(nums[i]+1) 的项, 所以 max = 0 ;因此 now = 1 ;然后在 has 中添加 key = 200,value = 1 的项;result 等于 now,所以 result 不变

当前的 i = 3 ,nums[ i ] = 1,   has 中没有 key 为 1 的项,所以让 min = has.getOrDefault(nums[i]-1, 0);max = has.getOrDefault(nums[i]+1, 0);由于 has 中没有 key 为 0(nums[i]-1) 的项, 所以 min = 0 ;由于 has 中没有 key 为 2(nums[i]+1) 的项, 所以 max = 0 ;因此 now = 1 ;然后在 has 中添加 key = 1,value = 1 的项;result 等于 now,所以 result 不变

当前的 i = 4 ,nums[ i ] = 3,   has 中没有 key 为 3 的项,所以让 min = has.getOrDefault(nums[i]-1, 0);max = has.getOrDefault(nums[i]+1, 0);由于 has 中没有 key 为 2(nums[i]-1) 的项, 所以 min = 0 ;由于 has 中有 key 为 4(nums[i]+1) 的项, 所以 max = 1 ;因此 now = 2 ;然后在 has 中添加 key = 3,value = 2 的项,添加 key = 3 + 1, value = 2 的项(has.put(nums[i]+max, now));result 小于 now,所以让 result = now = 2

当前的 i = 5 ,nums[ i ] = 2,   has 中没有 key 为 2 的项,所以让 min = has.getOrDefault(nums[i]-1, 0);max = has.getOrDefault(nums[i]+1, 0);由于 has 中有 key 为 1(nums[i]-1) 的项, 所以 min = 1 ;由于 has 中有 key 为 3(nums[i]+1) 的项, 所以 max = 2 ;因此 now = 4 ;然后在 has 中添加 key = 2,value = 4 的项,添加 key = 2 + 1, value = 4 的项(has.put(nums[i]+max, now)),添加 key = 2 - 1, value = 4 的项(has.put(nums[i]-min, now));result 小于 now,所以让 result = now = 4

 

最后返回 result ,result 等于 4

2.3、解题代码

class Solution {public int longestConsecutive(int[] nums) {HashMap<Integer, Integer> has = new HashMap<>();int result = 0;for (int i=0; i<nums.length; i++){if (has.get(nums[i]) != null){continue;}int min = has.getOrDefault(nums[i]-1, 0);int max = has.getOrDefault(nums[i]+1, 0);int now = min + max + 1;if (min == 0 && max == 0){has.put(nums[i], now);} else if (min == 0){has.put(nums[i]+max, now);has.put(nums[i], now);} else if (max == 0){has.put(nums[i], now);has.put(nums[i]-min, now);} else{has.put(nums[i]+max, now);has.put(nums[i], 1);has.put(nums[i]-min, now);}result = Math.max(result,now);}return result;}
}

 

  • 时间复杂度: O(n)

  • 空间复杂度: O(n)

 

【LeetCode力扣】相关:

【LeetCode力扣】42.接雨水(困难)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_65277261/article/details/134291521?spm=1001.2014.3001.5502【LeetCode力扣】287.寻找重复数(中等)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_65277261/article/details/134232926?spm=1001.2014.3001.5502【LeetCode力扣】11. 盛最多水的容器 (中等)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_65277261/article/details/134102596?spm=1001.2014.3001.5502

http://www.mmbaike.com/news/34630.html

相关文章:

  • 重庆观音桥网站建设免费网站的软件
  • 网页设计与网站架设域名注册新网
  • 邢台做移动网站费用潍坊网站建设解决方案
  • 网站开发项目需求方案网络营销就是
  • 邯郸网站建设最新报价东莞网络推广代运营
  • 凡科能上传自己做的网站数字营销平台有哪些
  • 网站建设的电话销售郑州seo优化外包顾问
  • 罗湖网站建设深圳信科竞价推广账户竞价托管
  • 网站主机要怎么做济南专业seo推广公司
  • 网站建设前期策划方案市场调研报告怎么写的
  • 培训类网站模板百度推广登录入口登录
  • 连云港做网站制作今日热点新闻事件摘抄50字
  • 怎样做网站关键词优化seo网站优化价格
  • 网站建设的必要性分析网站怎样优化文章关键词
  • pc网站怎么做自适应百度广告上的商家可靠吗
  • 给个网站2022年手机上能用的aso优化服务
  • 如何做网站ab测试百度官方电话24小时
  • 可信网站认证必须做公司网站制作需要多少钱
  • 汕头企业网站做电商如何起步
  • 做网站下载功能广州公司关键词网络推广
  • 淘宝上网站建设靠谱吗集客营销软件官方网站
  • php ajax网站开发典型实例pdf排名优化哪家专业
  • 网站404设置自己做网站的软件
  • wordpress文章备份seo的中文意思是什么
  • 深圳比较好的网站设计公司互联网营销师在哪里报名
  • 做网站首页有什么网络竞价
  • 网站动态设计效果推广app的营销方案
  • wordpress仿p站主题宁波网站推广优化外包
  • 社交app定制开发seo优化sem推广
  • flash 网站怎么样建立自己的网站