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

经典网站设计智能建造师证书

经典网站设计,智能建造师证书,9377霸主传奇网页版,微信定制开发多少钱这里需要大家有一些哈希表(散列表的理论基础) 比如冲突怎么处理 key-value是什么意思 有哪些处理冲突的方法 平均查找成功长度和失败长度是什么意思。 详细可以看一下这个数据结构散列表。在java中常用三种结构代表散列: map,set,数组。应在不…

这里需要大家有一些哈希表(散列表的理论基础)
比如冲突怎么处理 key-value是什么意思 有哪些处理冲突的方法 平均查找成功长度和失败长度是什么意思。 详细可以看一下这个数据结构散列表。在java中常用三种结构代表散列:
map,set,数组。应在不同的情况下合理选择。
看题目理解:

题目一:两数之和

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

你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

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

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]

分析 :在map中有很多实用的API 例如map.containsKey(某个值)

如果map的key中包含这个值就返回true

每次遍历当前nums中的数据,然后再从map中找target-nums[i]当前的数据如果能从map中找到则返回数组下标

coding:

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,Integer>mymap=new  HashMap();for(int i=0;i<nums.length;i++){int  mytarget=target-nums[i];if(mymap.containsKey(mytarget)){return new int[]{mymap.get(target-nums[i]),i};}else{
​        mymap.put(nums[i],i);}}return new int[0];}
}

题目二: 字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
示例 2:

输入: strs = [“”]
输出: [[“”]]
示例 3:

输入: strs = [“a”]
输出: [[“a”]]

分析:异位的字母虽然顺序不一样但是内容一样。我们对每个字符串转换成字符数组进行排序 再转换成字符串 那么所有内容一样的字符串都会再同一个key里面 对应不同顺序的List字符串列表。例如"abc"和"bac" 排序后对应同一个key加入map后是abc List是"abc"和"bac".随后再对map进行遍历把遍历的内容放在List<List>result;中。str.toCharArray()//把字符串转换成字符数组、new String(arr)//把字符数组转换成字符串。map.getorDefault(key,其它)//获取某个 key对应的value如果获取不到就默认为其它里面的内容

coding:

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String,List<String>>map=new HashMap();List<List<String>>returnlist=new ArrayList<List<String>>();for(int i=0;i<strs.length;i++){String mystr=strs[i];char[]arr1=mystr.toCharArray();Arrays.sort(arr1);String key=new String(arr1);List<String>list=map.getOrDefault(key,new ArrayList<String>());list.add(mystr);map.put(key,list);  }Iterator<Map.Entry<String,List<String>>>  iterator=map.entrySet().iterator();while(iterator.hasNext()){Map.Entry<String,List<String>>entry=iterator.next();returnlist.add(entry.getValue());}return returnlist;}
}

题目三:最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例 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

思路:我们给出一串数字求连续的最长的 6,7,3,4,9,10.15 ,5 ,5 首先肯定是去重。把数据放入到Set中去重。 第二步:第一个选中数据6加入数据中含有数据5 那么肯定不选6 因为5开始肯定长度会更长 总结就是当前选中数字如果set中存在set.contains(当前选中的数字-1);那么就跳过。 只掉选中集合中不存在当前选中的数字-1的数字 例如3就满足 然后继续看是否存在4 ,5 来记录 长度 直到选出最大值

coding:

class Solution {public int longestConsecutive(int[] nums) {Set<Integer>nums_set=new HashSet();int currentlength=0;int longestlength=0;for(int i=0;i<nums.length;i++){​      nums_set.add(nums[i]);}Iterator<Integer>it=nums_set.iterator();while(it.hasNext()){int currentnum=it.next();if(!nums_set.contains(currentnum-1)){​        currentlength=1;while(nums_set.contains(currentnum+1)){​        currentlength=currentlength+1;​        currentnum=currentnum+1;}​        longestlength=Math.max(currentlength,longestlength);​        currentlength=0;}}return longestlength;}}
http://www.yayakq.cn/news/208506/

相关文章:

  • 医院的网站关键词定位一般是什么商业中心 网站建设
  • 网站建设技巧亅金手指排名27北京哪家公司做网站
  • 网站建设万首先金手指12福田我要做网站优化比较好
  • 网站点赞怎么做零基础学习做网站
  • 网站排名西安网站建设服务范围
  • 三视觉设计网站家在深圳坪山
  • 公司的网站建设做什么费用wordpress注册协议
  • 注册网站大全财务管理培训
  • 移动网站建设的基本流程图网站优化排名查询
  • 龙华企业网站建设建筑设计公司经营范围
  • 织梦如何一个后台做两个网站班玛县公司网站建设
  • 企业网站尺寸哈尔滨专业建网站方案
  • 中牟高端网站建设电商运营要学多久
  • 网站建设静态部分总结石家庄有哪些大型互联网公司
  • 松江网站开发培训学校外贸网站服务器选择
  • 网站建设的一般步骤包括成都网站建设scdzks
  • 个人网站设计及实现论文易语言怎么做无限打开网站
  • 全球最大的网站建设外包网能看的网站给我一个呗
  • 金融公司 网站开发莱芜百姓网
  • 网站建设公司在哪里做海岛旅游预定网站的
  • 论坛与网站做优化哪个更好湖南备案网站建设方案书
  • 内蒙古网站开发公司中国建筑网官网图片
  • 企业的网站建设前期工作总结百度的特点和优势
  • 山东网站建设开发龙华龙岗光明最新通告
  • 做3个网站需要多大的服务器免费开发网站
  • wordpress 主页排序嘉兴网站快速排名优化
  • 做mod的网站做网站 不做源码
  • 建立石墨碳素网站怎么做火车头采集wordpress规则
  • asp网站开发流程seo快速排名工具
  • 平度好的建设网站查询建设资质的网站