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

mysql做网站怎么查看数据外贸网站建设平台

mysql做网站怎么查看数据,外贸网站建设平台,wordpress随机文章排除分类,彩票系统全套源码php【算法题解答七】哈希 接上文【算法方法总结七】哈希的一些技巧和注意事项 哈希相关题目如下: 349. 两个数组的交集 一个哈希 set1 用来保存数组1的值,一个哈希 resSet 用来保存相交的值 class Solution {public int[] intersection(int[] nums1, in…

【算法题解答·七】哈希

接上文【算法方法总结·七】哈希的一些技巧和注意事项


哈希相关题目如下:

349. 两个数组的交集

  • 一个哈希 set1 用来保存数组1的值,一个哈希 resSet 用来保存相交的值
class Solution {public int[] intersection(int[] nums1, int[] nums2) {Set<Integer> set1 = new HashSet<>();Set<Integer> resSet = new HashSet<>();for (int i : nums1) { // 遍历数组1set1.add(i);}for (int i : nums2) { // 遍历数组2if (set1.contains(i)) { // 数组2中也存在则加入resSet.add(i);}}int[] arr = new int[resSet.size()];int j = 0;for (int i : resSet) {arr[j++] = i;}return arr;}
}

1. 两数之和

class Solution {public int[] twoSum(int[] nums, int target) {int[] res = new int[2]; // 返回值if (nums == null || nums.length == 0) {return res;}Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {int t = target - nums[i];if (map.containsKey(t)) { // 包含关键字 tres[1] = i;res[0] = map.get(t); // 得到关键字的 valuebreak;} else {map.put(nums[i], i); // 加入 map}}return res;}
}

454.四数相加II

计算有多少组满足

  • 首先定义 一个HashMapkeyab两数之和,valueab两数之和出现的次数
  • 遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中。
  • 定义int变量count,用来统计 a + b + c + d = 0 出现的次数。
  • 再遍历大C和大D数组,找到如果 0-(c+d)map中出现过的话,就用countmapkey对应的value也就是出现次数统计出来。
class Solution {public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {int res = 0;Map<Integer, Integer> map = new HashMap<>();// 遍历 A和Bfor (int i : nums1) {for (int j : nums2) {int sum = i + j;// map.getOrDefault(sum, 0)如果存在sum返回其value,否则返回0map.put(sum, map.getOrDefault(sum, 0) + 1);}}// 遍历 C和Dfor (int i : nums3) {for (int j : nums4) {res += map.getOrDefault(0 - i - j, 0);}}return res;}
}

15. 三数之和

  • 因为 不可包括重复 的三元组,使用 哈希法,去重过程 不好处理

  • 使用 双指针法 要比 哈希法 高效一些,而且要求 返回的是数值 的话,就可以使用 双指针法

18. 四数之和

  • 15.三数之和 是同一个思路,多一层 for 循环,

  • 对于 15.三数之和 双指针法就是将原本暴力O(n^3)的解法,降为O(n^2)的解法,
    18.四数之和 的双指针解法就是将原本暴力O(n^4)的解法,降为O(n^3)的解法

49.字母异位词分组

  • 先把 "bac" 转化为 [b,a,c]sort 排序后再转回字符串 "abc",为它的 key
  • 先把 "bca" 转化为 [b,c,a]sort 排序后再转回字符串 "abc",为它的 key
  • 上述两者 key 相同
// sort 得到 key,相同的 key 加入同一个列表中
class Solution {public List<List<String>> groupAnagrams(String[] strs) {// 排序法Map<String, List<String>> map = new HashMap<>();// 遍历数组中的每个字符串for (String str : strs) {char[] ss = str.toCharArray(); // 转为字符数组Arrays.sort(ss); // 排序得到其 keyString key = String.valueOf(ss); // 字符数组 -> 字符串List<String> list = map.getOrDefault(key, new ArrayList<String>());list.add(str); // 结果中加入当前字符串map.put(key, list); // 更新 map}return new ArrayList<List<String>>(map.values());}
}

128.最长连续序列

  • 先找到起点 x,如果 x-1 也在 set 中,说明 x 不是起点
  • 找到起点后,循环查看 set 中是否有下一个数
// 用 HashSet,查找元素方便,如果x-1也在set里,继续遍历直到没有x-1时,x为起点
class Solution {public int longestConsecutive(int[] nums) {int ans = 0;Set<Integer> st = new HashSet<>();// 把数组转换为哈希集合for (int num : nums) {st.add(num);}for (int x : st) {// 如果 x-1 在集合中,继续if (st.contains(x - 1)) {continue;}// x 是起点int y = x + 1; // 下一个数while (st.contains(y)) {y++;}// 循环结束后,y-1 是最后一个在哈希集合中的数ans = Math.max(ans, y - x);}return ans;}
}

算法题解答系列

【算法题解答·一】二分法
【算法题解答·二】双指针法
【算法题解答·三】滑动窗口
【算法题解答·四】字符串操作
【算法题解答·五】链表操作
【算法题解答·六】栈队列堆
【算法题解答·七】哈希

http://www.dtcms.com/wzjs/243318.html

相关文章:

  • 怎么做代理人金沙网站友链交换有什么作用
  • 没有域名可以建网站吗sem是什么电镜
  • 套别人代码做网站2022年新闻摘抄简短
  • 哪个网站做推销产品seo人员培训
  • 延安网站建设公司电话企业管理软件
  • 定制化网站开发互动营销的案例及分析
  • 连云港做网站哪里好网站推广优化服务
  • 美妆企业网站模板关键词林俊杰mp3免费下载
  • 宁波公司建网站哪家好网络推广员一个月多少钱
  • 1688开山网一起做网站百度数字人内部运营心法曝光
  • 在线快速建站网络营销软文案例
  • 小语种网站制作苏州百度推广公司
  • 两学一做山西答题网站网站策划方案书
  • 湘潭网站建设公司有哪些b2b国际贸易平台
  • 日报社网站平台建设项目朝阳区搜索优化seosem
  • 做python题目的网站nba最新消息球员交易
  • 淘宝客做网站怎么做百度财报q3
  • 长沙服务专业的建网站企业网站推广外包
  • 如何将微信和企业网站同步怎么看百度关键词的搜索量
  • 网站开发要点网站快速排名推广软件
  • 网站后台程序怎么做怎么推广网站
  • 东莞厚街疫情最新消息技术优化seo
  • 如何做多语言网站国际婚恋网站排名
  • wordpress 用iis建站网络设计
  • 网站添加新闻栏怎么做免费seo软件推荐
  • 在织梦网站做静态网页企业网站建设的流程
  • 福安建设网站校园推广
  • 购物网站开发南宁seo团队哪家好
  • wordpress时间几天前锦绣大地seo官网
  • 没有服务器做网站公司优化是什么意思