![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
HXACA_XMUT
我差不多已经是条咸鱼了_(:зゝ∠)_
展开
-
每日一题 2020.11.6
1356. 根据数字二进制下 1 的数目排序给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。思路:预处理出各数的含1数量,然后进行排序var nums = [1e4+10]int{}//初始化函数 自动调用func init(){ for i:=1;i<=1e4;i++{ nums[i] = nums[i>>1]原创 2020-11-06 14:33:11 · 330 阅读 · 0 评论 -
每日一题 2020.11.5
127. 单词接龙给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。思路:建图后跑最短路即可var length int原创 2020-11-06 14:21:38 · 188 阅读 · 1 评论 -
每日一题 2020.11.4
57. 插入区间给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。思路:遍历一遍已有区间,对和要插入的区间有重叠的部分进行合并即可func insert(intervals [][]int, newInterval []int) (ans [][]int) { l,r := newInterval[0],newInterval[1] flag := false for _ ,原创 2020-11-04 15:48:12 · 117 阅读 · 0 评论 -
每日一题 2020.11.3
941. 有效的山脉数组给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < … A[i-1] < A[i]A[i] > A[i+1] > … > A[A.length - 1]思路:双指针,检查两个指针最后是否相交func原创 2020-11-04 15:46:36 · 68 阅读 · 0 评论 -
每日一题 2020.11.2
349. 两个数组的交集给定两个数组,编写一个函数来计算它们的交集。思路:一个map维护某一个数组出现过的数,另一个map维护结果是否已经统计过该数func intersection(nums1 []int, nums2 []int) []int { map1 := make(map[int]bool) map2 := make(map[int]bool) ans := make([]int,0) for _ , num := range nums1{原创 2020-11-04 15:45:08 · 71 阅读 · 0 评论 -
每日一题 2020.11.1
140. 单词拆分 II给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。思路:记忆化搜索var dp [][][]stringvar words map[string]boolfunc solve(index int,s string) [][]string{ if dp[index] != nil{原创 2020-11-01 15:39:22 · 83 阅读 · 0 评论 -
每日一题 2020.10.31
381. O(1) 时间插入、删除和获取随机元素 - 允许重复设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构。注意: 允许出现重复元素。insert(val):向集合中插入元素 val。remove(val):当 val 存在时,从集合中移除一个 val。getRandom:从现有集合中随机获取一个元素。每个元素被返回的概率应该与其在集合中的数量呈线性相关。思路:用一个数组存储出现过的所有数,对于每个val维护其出现的下标,随机值通过随机下标获得type Rando原创 2020-10-31 10:50:38 · 153 阅读 · 0 评论 -
每日一题 2020.10.30
463. 岛屿的周长给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。思路: 遍历一遍即可func islandPerimeter(grid [][]int) in原创 2020-10-30 18:51:16 · 168 阅读 · 0 评论 -
每日一题 2020.10.29
129. 求根到叶子节点数字之和给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。思路:dfs即可/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode原创 2020-10-29 09:15:05 · 149 阅读 · 0 评论 -
每日一题 2020.10.28
1207. 独一无二的出现次数给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。思路:两个hash,一个用于统计每个数出现的次数,一个用于统计出现次数是否已经出现func uniqueOccurrences(arr []int) bool { hash := make(map[int]int) for _ , v := range arr{ hash[v]++ } vis := make(map[int原创 2020-10-28 15:33:13 · 83 阅读 · 0 评论 -
LeetCode 数据库刷题
发现LeetCode还能做数据库的题,最近比较闲,就一起做了。题目还挺难的,中等的基本就不会了,题解大法好。题目列表175. 组合两个表175.第二高的薪水177. 第N高的薪水178. 分数排名180. 连续出现的数字181. 超过经理收入的员工182. 查找重复的电子邮箱183. 从不订购的客户184. 部门工资最高的员工196. 删除重复的电子邮箱175. 组合两个表思路:left j...原创 2020-03-25 20:01:58 · 600 阅读 · 0 评论 -
剑指Offer刷题记录
做了一场笔试,发现自己的代码的水平实属堪忧,用java刷点基础题,顺带复习一下基本语法吧。随缘更新,75题预计三周写完。 @TOC面试题03. 数组中重复的数字思路:长度为n,并且数字范围在0-n-1,所以可以考虑把每个数字放到他应该在的位置,如果放过去的时候发现已经被占了,那么就说明这个数重复了。class Solution { public int findRepeatNu...原创 2020-03-20 15:50:44 · 322 阅读 · 0 评论