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

启铭网站建设自媒体平台app

启铭网站建设,自媒体平台app,政府门户网站改版方案,网站宽度 1000px这里需要大家有一些哈希表(散列表的理论基础) 比如冲突怎么处理 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.dinnco.com/news/81163.html

相关文章:

  • 个人网站怎么做代码安徽seo报价
  • 什么做网站的公司好郑州网站推广报价
  • 大连市公众平台网站搜索引擎数据库
  • 社区信息建设网站网络营销渠道有哪几种
  • steamcn网站是谁做的免费精准客源
  • 网站栏目怎么做南京seo网络推广
  • 酒店网站案例网站内链优化
  • 网站制作钱企业网站建设价格
  • 社交网站上的商城怎么做百度网站链接提交入口
  • 如何在记事本中做网站链接百度竞价优化软件
  • 公司想做个网站关键词优化排名查询
  • wordpress禁用谷歌字体禁用头像网站seo方案策划书
  • 安徽白云集团网站建设网络seo哈尔滨
  • 呼市做网站整站优化网站
  • 德文网站建设域名注册平台
  • 天河区网站制作朋友圈网络营销
  • 铜陵做网站成都网站seo报价
  • 那个网站可教做课件好seo服务加盟
  • 广东长海建设工程有限公司网站怎么做网页宣传
  • 电子商务网站建设试题3腾讯企业邮箱
  • 网站建设与推广seo优化便宜
  • 郑州网站推广效果掌门一对一辅导官网
  • 常用的建站工具有哪些看书网站排名
  • 网站设计建设平台网站推广公司推荐
  • 什么网站可以接单做设计百度seo优化推广公司
  • 政府网站设计理念网络营销的优势与不足
  • 太原做企业网站的广州seo
  • 闵行区做网站公司宁波seo哪家好快速推广
  • 网站后期维护费用百度免费官网入口
  • 网站建设问题新闻资讯营销最好的方法