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

个人网站可以做企业网站吗手机网站logo

个人网站可以做企业网站吗,手机网站logo,网站打不开建设中哪的问题,个人摄影网站模版本篇博客讲解 LeetCode热题100道中的哈希篇中的三道题。分别是 1.第一道#xff1a;两数之和#xff08;简单#xff09; 2.第二道#xff1a;字母异位词分组#xff08;中等#xff09; 3.第三道#xff1a;最长连续序列#xff08;中等#xff09; 第一道#xff1… 本篇博客讲解 LeetCode热题100道中的哈希篇中的三道题。分别是 1.第一道两数之和简单 2.第二道字母异位词分组中等 3.第三道最长连续序列中等 第一道两数之和简单 class Solution {public int[] twoSum(int[] nums, int target) {int left 0,right nums.length-1;Arrays.sort(nums);while (left right){if(nums[left] nums[right] target) {left;}else if(nums[left] nums[right] target){right--;}else {return new int[]{left,right};}}return new int[]{left,right};} } 方法一暴力枚举 class Solution {public int[] twoSum(int[] nums, int target) {int n nums.length;for (int i 0; i n; i) {for (int j i 1; j n; j) {if (nums[i] nums[j] target) {return new int[]{i, j};}}}return new int[0];} }我们通过双循环。遍历数组中每一个两数之和。若和等于target。 此时我们返回数组两个数的数组下标。这样的思想很简单不过效率不高。 方法二哈希表 注 java的官方文档建议我们在初始化哈希表的时候尽量写入哈希表的容量避免哈希表扩容所带来的性能消耗。 class Solution {public int[] twoSum(int[] nums, int target) {int len nums.length;MapInteger, Integer hashTable new HashMapInteger, Integer(len-1);hashTable.put(nums[0],0);//向哈希表存入数组第一个数//从第二个数开始遍历数组看哈希表中是否存在target减去此时数组的数所对应的值//如果有则返回下标。//没有则将这个数放进哈希表。并存入数组下标。for (int i 1; i len; i) {if (hashtable.containsKey(target - nums[i])) {return new int[]{hashtable.get(target - nums[i]), i};}hashtable.put(nums[i], i);}return new int[0];} } 我们通过Map类创建一个哈希表。 1.向哈希表存入数组第一个数 2.从第二个数开始遍历数组看哈希表中是否存在target减去此时数组的数所对应的值 3.如果有则返回下标。 4.没有则将这个数放进哈希表。并存入数组下标。 第二道字母异位词分组中等 方法一哈希排序  class Solution {public ListListString groupAnagrams(String[] strs) {MapString, ListString map new HashMapString, ListString();for (String str : strs) {char[] array str.toCharArray();Arrays.sort(array);String key new String(array);ListString list map.getOrDefault(key, new ArrayListString());list.add(str);map.put(key, list);}return new ArrayListListString(map.values());} }遍历其中的字符串。将他们转换为数组方便操作。对于每个单词。进行排序。 作为哈希表的键。将单词加入哈希表。返回的就是答案。 方法二哈希计数 class Solution {public ListListString groupAnagrams(String[] strs) {MapString, ListString map new HashMapString, ListString();for (String str : strs) {int[] counts new int[26];int length str.length();for (int i 0; i length; i) {counts[str.charAt(i) - a];}// 将每个出现次数大于 0 的字母和出现次数按顺序拼接成字符串作为哈希表的键StringBuffer sb new StringBuffer();for (int i 0; i 26; i) {if (counts[i] ! 0) {sb.append((char) (a i));sb.append(counts[i]);}}String key sb.toString();ListString list map.getOrDefault(key, new ArrayListString());list.add(str);map.put(key, list);}return new ArrayListListString(map.values());} }将每个出现次数大于 0 的字母和出现次数按顺序拼接成字符串作为哈希表的键。 第三道最长连续序列中等 暴力的方法是 O(n) 遍历数组去看是否存在这个数我们就不多说了这里我们来看更高效的哈希表法。 哈希表 class Solution {public int longestConsecutive(int[] nums) {SetInteger set new HashSetInteger();for (int num : nums) {set.add(num);}int longestStreak 0;for (int num : set) {if (!set.contains(num - 1)) {int currentNum num;int currentStreak 1;while (set.contains(currentNum 1)) {currentNum 1;currentStreak 1;}longestStreak Math.max(longestStreak, currentStreak);}}return longestStreak;} } 1.首先定义一个Set类去重并将去重后的数组放入Set中 2.初始化最长连续序列longestStreak令其为0。 3.遍历Set。去找是否存在num-1。这个数。 如果不存在则记录当前的num为currentNum。且令currentStreak为1。并且循环在set中查找是否包含currentNum。如果包含就一直更新currentStreak的值直到不包含为止。并每次取得currentStreak与longestStreak的最大值赋值给longestStreak 如果存在则跳过。 最终返回longestStreak
http://www.hkea.cn/news/14276047/

相关文章:

  • 做凉菜的网站wordpress怎么缩短标题
  • 电子商务网站规划与建设试题网站建设研究背景
  • 网站开发与设计武威 网站建设
  • 公司网站制作的费用申请做爰视频网站在线看
  • 柳江企业网站建设价格软件技术属于什么学类
  • 男女做爰视频网站在线视频如何做网站免费搭桥链接
  • 做网站 绍兴展览公司网站建设
  • 网站修改图片怎么做龙岩相亲网
  • 湖南星大建设集团有限公司网站网店营销
  • 网站 建设 现状分析新冠怎么突然不见了
  • 做网站公司上班违法吗网站设计与程序方向
  • 西安商城网站建设网站专业术语中seo意思是
  • 成都电商网站开发网络做网站如何盈利
  • 制作企业网站页面多少钱wordpress js 调用图片
  • 网站开发技术应用领域thinkphp 做网站如何
  • 游戏网站建设论文简单漂亮的博客php网站源码
  • 医院网站建设安全协议哪个建站软件比较好带论坛
  • 怎么对网站做seo优化二维码生成器加logo
  • 没有固定ip做网站n怎样建立自己的网站
  • 怎么攻击网站吗旅游最新政策
  • 本人找做钢筋笼的活网站wordpress认证机制
  • 未成年人思想道德建设网站今天郑州最新通告
  • 做网站常用什么软件dedecms中英文网站 模板
  • 建设小型网站系统开题报告用帝国做的网站
  • 河北省城乡与住房建设厅网站牛商网朱依静
  • 网站开发大揭秘wordpress关闭缓存
  • 网站建设兼职合同模板seo推广软件费用
  • 买了云服务器怎么做网站普陀做网站
  • 水墨风格网站欣赏做宠物服务的相关网站
  • 兴县网站建设有没有网站建设的教程