自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 401. 二进制手表

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。例如,下面的二进制手表读取 “3:25” 。给你一个整数 turnedOn ,表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。你可以 按任意顺序 返回答案。小时不会以零开头:例如,“01:00” 是无效的时间,正确的写法应该是 “1

2021-06-22 08:25:15 183

原创 1600. 皇位继承顺序

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述一个王国里住着国王、他的孩子们、他的孙子们等等。每一个时间点,这个家庭里有人出生也有人死亡。这个王国有一个明确规定的皇位继承顺序,第一继承人总是国王自己。我们定义递归函数 Successor(x, curOrder) ,给定一个人 x 和当前的继承顺序,该函数返回 x 的下一继承人。Successor(x, curOrder):如果 x 没有孩子或者所有 x 的孩子都在 curOrder 中:如果 x 是国王

2021-06-20 22:52:22 324

原创 877. 石子游戏

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回 true ,当李赢得比赛时返回 fals

2021-06-16 23:30:47 245 2

原创 852. 山脉数组的峰顶索引

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述符合下列属性的数组 arr 称为 山脉数组 :arr.length >= 3,存在 i(0 < i < arr.length - 1)使得:arr[0] < arr[1] < … arr[i-1] < arr[i]arr[i] > arr[i+1] > … > arr[arr.length - 1]给你由整数组成的山脉数组 arr ,返回任何满足 arr

2021-06-16 00:41:54 154

原创 374. 猜数字大小

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述猜数字游戏的规则如下:每轮游戏,我都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0):-1:我选出的数字比你猜的数字小 pick < num1:我选出的数字比你猜的数字大 pick

2021-06-14 10:34:34 38

原创 278. 第一个错误的版本

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个

2021-06-13 10:41:14 59

原创 1449. 数位成本和为目标值的最大数字

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述给你一个整数数组 cost 和一个整数 target 。请你返回满足如下规则可以得到的 最大 整数:给当前结果添加一个数位(i + 1)的成本为 cost[i] (cost 数组下标从 0 开始)。总成本必须恰好等于 target 。添加的数位中没有数字 0 。由于答案可能会很大,请你以字符串形式返回。如果按照上述要求无法得到任何整数,请你返回 “0” 。示例 1:输入:cost = [4,3,2,5,

2021-06-12 20:31:40 153 1

原创 【算法基础】- 二分查找

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出核心思想对于二分查找,可以分为两大类,第一种是整数二分,另外一种是浮点数二分,对于整数二分来说,可以有两种方式,第一种二分出的是左边界,第二种二分出的是右边界,下面依次给出二者的模板代码:Go二分出左边界l, r := 0, n-1for l < r { mid := (l + r) >> 1 if a[mid] < x { l = mid + 1 } else { r = mi

2021-06-07 22:53:30 65

原创 面试题 16.20. T9键盘

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述在老式手机上,用户通过数字键盘输入,手机将提供与这些数字相匹配的单词列表。每个数字映射到0至4个字母。给定一个数字序列,实现一个算法来返回匹配单词的列表。你会得到一张含有有效单词的列表。映射如下图所示:示例 1:输入: num = "8733", words = ["tree", "used"]输出: ["tree", "used"]示例 2:输入: num = "2", words = ["a", "

2021-06-07 22:41:22 93

原创 【算法基础】 - 归并排序

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出核心思想归并排序的核心思想主要有以下几步:找到区间中点mid将[l, mid]以及[r, mid]分别进行排序将这两个区间合并为一个区间时间复杂度分析归并排序的时间复杂度为O(nlogn)O(nlogn)O(nlogn)模板代码Gopackage mainimport "fmt"func merge_sort(a []int, l int, r int) { if l >= r { r

2021-06-06 22:54:41 173 2

原创 面试题 01.07. 旋转矩阵

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1,

2021-06-06 21:43:49 41

原创 面试题 04.03. 特定深度节点链表

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。示例:输入:[1,2,3,4,5,null,7,8] 1 / \ 2 3 / \ \ 4 5 7 / 8输出:[[1],[2,3],[4,5,7],[8]]

2021-06-02 19:33:38 62

原创 面试题 08.07. 无重复字符串的排列组合

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。示例1: 输入:S = "qwe" 输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]示例2: 输入:S = "ab" 输出:["ab", "ba"]提示:字符都是英文字母。字符串长度在[1, 9]之间。题目链接题目分析这道题是比较经典的全排列问题,首先确定

2021-06-01 23:18:58 214 1

原创 【算法基础】 - 快速排序

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出核心思想快速排序的核心思想主要有以下几步:确定当前的关键值将所有大于该关键值的数字放到右边,所有小于该关键值的放到左边递归的处理左右两边时间复杂度分析对于快速排序,其平均时间复杂度为O(nlogn)O(nlogn)O(nlogn),最坏的情况是O(n2)O(n^2)O(n2),主要取决于关键值的选取,一般可以取中间的值作为关键值模板代码Gopackage mainimport ( "fmt"

2021-06-01 23:14:54 129

原创 面试题 08.09. 括号

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合。说明:解集不能包含重复的子集。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]题目链接题目分析这道题是暴搜类型的题目,对于暴搜需要明确枚举的顺序,这里我们以当前位置放上面括号来枚举所有的情况,中间需要判断几个非法情况,第

2021-05-31 23:44:07 72 1

原创 面试题 08.04. 幂集

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。示例: 输入: nums = [1,2,3] 输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]题目链接题目分析这个问题是一个比较经典的问题,我个人比较喜欢使用二进制枚举来做,对于二进制枚举大致的含义就是将集合中每一

2021-05-30 17:13:53 90

原创 面试题 02.06. 回文链表

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述编写一个函数,检查输入的链表是否是回文的。示例 1:输入: 1->2输出: false 示例 2:输入: 1->2->2->1输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?题目链接题目分析这道题是判断回文与反转链表的一个结合,思路是首先通过快慢指针获取到链表的中点,之后将后半段反转,然后与前半段进行值的比较,如果都一样,

2021-05-24 00:02:59 48

原创 面试题 05.01. 插入

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述给定两个整型数字 N 与 M,以及表示比特位置的 i 与 j(i <= j,且从 0 位开始计算)。编写一种方法,使 M 对应的二进制数字插入 N 对应的二进制数字的第 i ~ j 位区域,不足之处用 0 补齐。具体插入过程如图所示。题目保证从 i 位到 j 位足以容纳 M, 例如: M = 10011,则 i~j 区域至少可容纳 5 位。示例1: 输入:N = 1024(10000000000),

2021-05-22 20:36:24 91 1

原创 面试题 16.15. 珠玑妙算

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述珠玑妙算游戏(the game of master mind)的玩法如下。计算机有4个槽,每个槽放一个球,颜色可能是红色(R)、黄色(Y)、绿色(G)或蓝色(B)。例如,计算机可能有RGGB 4种(槽1为红色,槽2、3为绿色,槽4为蓝色)。作为用户,你试图猜出颜色组合。打个比方,你可能会猜YRGB。要是猜对某个槽的颜色,则算一次“猜中”;要是只猜对颜色但槽位猜错了,则算一次“伪猜中”。注意,“猜中”不能算入“伪猜

2021-05-22 01:19:58 165 3

原创 面试题 05.06. 整数转换

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。示例1: 输入:A = 29 (或者0b11101), B = 15(或者0b01111) 输出:2示例2: 输入:A = 1,B = 2 输出:2提示:A,B范围在[-2147483648, 2147483647]之间题目链接题目分析看到要找到两个数字不同的位,首先想到的自然是异或运算,那么统计一个数字中1的个数其实是

2021-05-20 23:42:08 90

原创 【Golang】MongoDB相关操作集锦

待更新。。。。

2021-05-20 00:08:33 584

原创 面试题 16.11. 跳水板

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。返回的长度需要从小到大排列。示例 1输入:shorter = 1longer = 2k = 3输出: [3,4,5,6]解释:可以使用 3 次 shorter,得到结果 3;使用 2 次 shorter 和 1 次

2021-05-19 23:21:05 46 2

原创 面试题 17.16. 按摩师

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4。示例 2:输入: [2,7,9,3,1]输出

2021-05-19 00:11:05 205 2

原创 面试题 17.10. 主要元素

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。示例 1:输入:[1,2,5,9,5,9,5,5,5]输出:5示例 2:输入:[3,2]输出:-1示例 3:输入:[2,2,1,1,1,2,2]输出:2说明:你有办法在时间复杂度为 O(N),空间复杂度为 O(1) 内完成吗?题目链接题目分析这道题要找到出现次数大于n / 2的那个数字

2021-05-17 22:51:41 74

原创 【Golang】并发环境下的异常处理

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出对于go中的多个协程同时运行的情况,如果其中一个协程发生了panic,那么就会导致其它的协程也无法正常运行,此时就需要对发生异常的协程做异常处理,以保证其它的协程可以正常的运行对于错误堆栈信息的打印import main// 打印错误的堆栈信息func PrintStack() { var buf [4096]byte n := runtime.Stack(buf[:], false) fmt.Print

2021-05-16 17:40:20 477

原创 面试题 03.01. 三合一

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述三合一。描述如何只用一个数组来实现三个栈。你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。构造函数会传入一个stackSize参数,代表每个栈的大小。示例1: 输入:["TripleInOne", "push", "push", "pop", "pop

2021-05-05 22:15:23 91

原创 面试题 10.01. 合并排序的数组

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述题目链接题目分析解题代码JavaGo

2021-05-04 22:28:48 63

原创 面试题 10.05. 稀疏数组搜索

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述稀疏数组搜索。有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。示例1: 输入: words = ["at", "", "", "", "ball", "", "", "car", "", "","dad", "", ""], s = "ta" 输出:-1 说明: 不存在返回-1。示例2: 输入:words = ["at", "", "", "", "ball", "

2021-05-03 23:02:04 47

原创 Thrift IDL语法详解

xxxx

2021-04-30 22:05:25 391 1

原创 面试题 01.04. 回文排列

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。回文串不一定是字典当中的单词。示例1:输入:"tactcoa"输出:true(排列有"tacocat"、"atcocta",等等)题目链接题目分析这道题要求我们判断给定的字符串是否可以重新排列为一个回文序列,回文序列的要求是奇数字符的数量为1个或者0个,所以我们就可以直接

2021-04-22 12:49:08 63

原创 力扣-第 236 场周赛

本文旨在对于笔者日常比赛的整理复盘,如果有不足的地方,欢迎大家在评论区指出Question one: 数组元素积的符号已知函数 signFunc(x) 将会根据 x 的正负返回特定值:如果 x 是正数,返回 1 。如果 x 是负数,返回 -1 。如果 x 是等于 0 ,返回 0 。给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。返回 signFunc(product) 。示例 1:输入:nums = [-1,-2,-3,-4,3,2,1]输出:1

2021-04-11 17:13:24 331

原创 面试题 01.09. 字符串轮转

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。示例1: 输入:s1 = "waterbottle", s2 = "erbottlewat" 输出:True示例2: 输入:s1 = "aa", s2 = "aba" 输出:False提示:字符串长度在[0, 100000]范围内。说明:你能

2021-04-11 11:24:02 60 1

原创 面试题 08.10. 颜色填充

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述编写函数,实现许多图片编辑软件都支持的「颜色填充」功能。待填充的图像用二维数组 image 表示,元素为初始颜色值。初始坐标点的行坐标为 sr 列坐标为 sc。需要填充的新颜色为 newColor 。「周围区域」是指颜色相同且在上、下、左、右四个方向上存在相连情况的若干元素。请用新颜色填充初始坐标点的周围区域,并返回填充后的图像。示例:输入:image = [[1,1,1],[1,1,0],[1,0,1

2021-04-11 11:10:01 100

原创 面试题 04.04. 检查平衡性

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2

2021-04-09 20:22:04 54

原创 面试题 03.06. 动物收容所

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述动物收容所。有家动物收容所只收容狗与猫,且严格遵守“先进先出”的原则。在收养该收容所的动物时,收养人只能收养所有动物中“最老”(由其进入收容所的时间长短而定)的动物,或者可以挑选猫或狗(同时必须收养此类动物中“最老”的)。换言之,收养人不能自由挑选想收养的对象。请创建适用于这个系统的数据结构,实现各种操作方法,比如enqueue、dequeueAny、dequeueDog和dequeueCat。允许使用Java内置

2021-04-08 16:04:54 140

原创 面试题 01.03. URL化

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)示例 1:输入:"Mr John Smith ", 13输出:"Mr%20John%20Smith"示例 2:输入:" ", 5输出:"%20%20%20%20%20"

2021-04-08 10:15:48 46

原创 面试题 17.01. 不用加号的加法

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符。示例:输入: a = 1, b = 1输出: 2提示:a, b 均可能是负数或 0结果不会溢出 32 位整数题目链接题目分析这道题不让使用+,-,*,/来完成数字的加法运算,一般就是使用位运算来做了,那么如何使用位运算来做呢,我们可以从两个数字的二进制表示入手,首先异或运算指的就是二进制表示下不进位的加法,所谓的不进位指的就是当两

2021-04-07 17:06:19 120 4

原创 【Python】Python中对于整数的存储

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出Python中负数的存储因为Python中是不区分int、long数据类型的,且数字运算本身就是大整型运算,也就是说,在Python中,正数例如5的二进制表示为000000000......0101,而负数例如-3的二进制表示为11111111111......1111101,也就是会有无限个0和1,在对负数的表示上与Java/C++有所不同,这里可以使用一道例题来讲解:题目描述给定一个数字,这个数字在32位整数范围内

2021-04-07 16:46:01 1227

原创 【Python】assert(断言)的使用

xxxx

2021-04-06 20:36:22 308

原创 面试题 03.02. 栈的最小值

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出题目描述请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin(); --> 返回

2021-04-06 11:41:19 66

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除