哈希表
哈希表
qxlxi
21届本,后端工程师 (专注于Java、Go、数据库、缓存、消息队列、网络、OS、算法、软件设计、DevOps、云原生、大数据、分布式系统架构设计等)
展开
-
【每日一题-leetcode】939. 最小面积矩形
939. 最小面积矩形最小面积矩形难度中等43给定在 xy 平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴。如果没有任何矩形,就返回 0。示例 1:输入:[[1,1],[1,3],[3,1],[3,3],[2,2]]输出:4示例 2:输入:[[1,1],[1,3],[3,1],[3,3],[4,1],[4,3]]输出:2 public int minAreaRect(int[][] points) { Set&原创 2020-08-04 14:57:07 · 525 阅读 · 0 评论 -
【每日一题-leetcode】454. 四数相加 II
454. 四数相加 II四数相加 II难度中等174给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] +C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 -1 之间,最终结果不会超过 231 - 1 。例如:输入:A = [ 1, 2]B = [-2,-1]C = [-1, 2]原创 2020-07-25 18:25:11 · 581 阅读 · 0 评论 -
【每日一题-leetcode】128. 最长连续序列
128. 最长连续序列最长连续序列难度困难464给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 //hashset //1.将元素添加到set中。然后在遍历nums.如果没有直接跳过。(去重) //2.拿到当前元素n 分别去看n-1 和n+1 是否在set中存储过,如果有迭代删原创 2020-07-21 15:40:13 · 357 阅读 · 0 评论 -
【每日一题-leetcode】136.只出现一次的数字
136.只出现一次的数字只出现一次的数字难度简单1351给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 41.hash表对于此类问题,使用hashmap即可解决,但是时间复杂度和空间都是O(n)public int singleNumber(int[] nu原创 2020-07-02 19:13:07 · 555 阅读 · 0 评论 -
【算法】设计RandomPool结构
1.题目设计RandomPool结构 【题目】 设计一种结构,在该结构中有如下三个功能:insert(key):将某个key加入到该结构,做到不重复加入。 delete(key):将原本在结构中的某个key移除。getRandom(): 等概率随机返回结构中的任何一个key。 【要求】Insert、delete和getRandom方法的时间复杂度都是 O(1)2.思路题目要求必须是O(1)的时间复杂度,那么上哈希表就可以了,但是随机返回等概率的key 哈希表是做不到的,因此,我们可以借助两原创 2020-05-19 16:52:22 · 315 阅读 · 1 评论 -
【剑指offer】50.第一个出现一次的字符
50.第一个出现一次的字符面试题50. 第一个只出现一次的字符难度简单14在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。示例:s = "abaccdeff"返回 "b"s = "" 返回 " "1.哈希表/**1.哈希表 a.使用hashmap来存储 key为字符,value为true or false 1)true -> 该...原创 2020-05-01 09:23:43 · 243 阅读 · 0 评论 -
【剑指offer】39.数组中出现次数超过一半的数字
39.数组中出现次数超过一半的数字面试题39. 数组中出现次数超过一半的数字难度简单19数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 21.哈希表 //哈希表 //1.将数组中元素作为key value为...原创 2020-04-28 17:28:25 · 273 阅读 · 0 评论 -
【每日一题-leetcode】49.字母异位词分组
49.字母异位词分组字母异位词分组难度中等309给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]1.排序数组分类时间复杂度...原创 2020-04-06 18:05:37 · 385 阅读 · 0 评论 -
【每日一题-leetcode】242.有效的字母异位词
242.有效的字母异位词有效的字母异位词难度简单173收藏分享切换为英文关注反馈给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false1.依次遍历比较思路:异位次的含义是 一...原创 2020-04-05 12:17:59 · 382 阅读 · 0 评论 -
【剑指offer】3.数组中重复的数字
3.数组中重复的数字题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。1.HashSet使用hashSet去重 如果添加不成功说明出现了重复的元素 返回。public int findRepeatNumber(int[] nums) {...原创 2020-03-25 18:27:44 · 310 阅读 · 0 评论 -
【每日一题-leetcode】15.three sum
15.三数之和给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]1.暴...原创 2020-03-24 14:43:20 · 336 阅读 · 0 评论