魏小言
BAT资深工程师,Cloud Native 拥护者,敏捷实践者,坚守开发一线打磨工匠技艺的架构师。对基础架构和微服务有丰富的研究和实践。微信群请私信博主
展开
-
LeetCode:环形链表
目录题目示例思路代码附录题目给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。示例示例 1:输入:head = [3,2,0,-4原创 2022-05-25 09:56:27 · 161 阅读 · 1 评论 -
LeetCode:合并两个有序数组
目录题目示例思路代码题目给你两个按 非递减顺序 排列的整数数组nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 .原创 2022-05-24 18:00:58 · 431 阅读 · 1 评论 -
LeetCode:加一
目录题目示例思路代码题目加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:..原创 2022-05-18 17:25:22 · 221 阅读 · 1 评论 -
LeetCode:两数之和
目录两数之和示例示例 1:示例 2:示例 3:思路代码两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + num原创 2022-05-16 17:17:29 · 284 阅读 · 1 评论 -
最强解析面试题:如何判断链表是否存在环?
目录如何判断链表是否存在环?题目思路代码附录如何判断链表是否存在环?题目如何判断链表是否存在环?思路快慢指针,链表存在环,快指针将会等于慢指针,返回 true;非环,则会遇 nil,返回 false代码package mainimport "fmt"func main () {a:= new(ListNode)b:= new(ListNode)c:= new(ListNode)a.Next = b...原创 2022-04-29 10:46:18 · 766 阅读 · 1 评论 -
最强解析面试题:无环链表相交
无环链表相交题目如何判断两个无环链表是否相交,相交则返回第一个相交节点,不相交返回null。思路双指针,分别遍历两个链表,若有相交节点,则会在遍历第二个链表时校验出;方法返回的是相交节点。关注我 code 杂坛,了解更多......代码package mainimport "fmt"func main () {a:=new(ListNode)a.Val = 0b:=new(ListNode)b.Val = 1...原创 2022-04-28 10:01:54 · 839 阅读 · 1 评论 -
最强解析面试题:最小的时间和空间代价合并有序数组
目录最小的时间和空间代价合并有序数组题目思路代码附录最小的时间和空间代价合并有序数组题目以最小的时间和空间代价合并如下两个数组,并且保证有序a = [ 2, 5, 7, 9, 0, 0, 0],b = [ 1, 3, 6],说明:1、a 中 0 是无效数据,0的长度与 b 的长度一致2、a 和 b 都是有序的,从小到大思路为不频繁移动数组元素,由于空位/无效位置在末尾,则将逆向对比数组末尾元素,分别移动至末尾位置,且无利用额外空间。.原创 2022-04-27 13:53:43 · 286 阅读 · 1 评论 -
最强解析面试题:二叉树两节点最大距离
目录最强解析面试题:二叉树两节点最大距离题目思路代码附录最强解析面试题:二叉树两节点最大距离题目从二叉树的节点 A 出发,可以向上或者向下走,但沿途的节点只能经过一次,当到达节点 B 时,路径上的节点数叫作 A 到 B 的距离。现在给出一棵二叉树,求整棵树上每对节点之间的最大距离。例如下图二叉树的节点间最大距离为节点5到节点7的距离为5。思路关注我 code 杂坛,了解更多......二叉树的最大距离,是某一节点左右子树之间的距离,这一节点可能是根节.原创 2022-04-26 11:29:04 · 518 阅读 · 1 评论 -
最强解析面试题:Goland 实现LRU算法
文章目录最强解析面试题:Goland 实现LRU算法题目思路代码附录最强解析面试题:Goland 实现LRU算法文章讲解 “ Goland 实现LRU算法 ” 经典面试题,包含思路及源码,及解惑!题目Goland实现LRU算法更多细节请关注 公众号 “ code 杂坛“!思路利用 goland 原生 container 包中的双向链表,最小代码量的实现 LRU ,更多细节请关注 公众号 “ code 杂坛“!代码container/listtype entry struct {原创 2022-02-08 15:48:26 · 502 阅读 · 1 评论 -
三行代码解反转链表
文章目录最强解析面试题:链表反转[go版]题目思路代码三行一解常规代码最强解析面试题:链表反转[go版]文章讲解 “ 链表反转[go版] ” 经典面试题,包含思路及源码,及解惑!题目定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思路递归/迭代思路1->2->3目标分三步第一步是 1->nil;第二步是 2->1->nil;第三步是 3->2->1->nil准备预备首节点 pre迭代 or原创 2022-02-07 13:42:20 · 257 阅读 · 1 评论 -
最强解析面试题:链表中倒数最后k个结点
文章目录最强解析面试题:链表中倒数最后k个结点题目代码附录最强解析面试题:链表中倒数最后k个结点文章讲解 “ 链表中倒数最后k个结点 ” 经典面试题,包含思路及源码,及解惑!题目输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。代码func FindKthToTail(pHead *ListNode, k int) *ListNode { if pHead == nil || k <= 0 {原创 2022-01-25 16:23:30 · 823 阅读 · 1 评论 -
Goland 实现LRU算法
文章目录最强解析面试题:Goland 实现LRU算法题目思路代码附录最强解析面试题:Goland 实现LRU算法文章讲解 “ Goland 实现LRU算法 ” 经典面试题,包含思路及源码,及解惑!题目Goland实现LRU算法思路将put/get 的节点追加在链表尾部,当put超出设定大小时,删除头节点Get:查看 map 存在,进行refresh:remove-add[删除原节点,添加至末尾],返回 value;不存在返回 -1;Put:查看 map 存在,覆盖 map 数值;否则查看原创 2022-01-18 17:21:32 · 1061 阅读 · 0 评论 -
最强解析面试题:Goland 并发版斐波那契数列
最强解析面试题:Goland 并发版斐波那契数列原创 2021-12-28 13:47:08 · 417 阅读 · 1 评论 -
最强解析面试题:最小 K 个数
最强解析面试题:最小 K 个数原创 2022-01-06 14:36:45 · 709 阅读 · 1 评论 -
最强解析面试题:连续子数组的最大和
最强解析面试题:连续子数组的最大和原创 2022-01-07 17:17:07 · 568 阅读 · 1 评论 -
最强解析面试题:Decode Ways
文章目录最强解析面试题:Decode Ways题目示例1示例2示例3思路代码附录最强解析面试题:Decode Ways文章讲解 “ Decode Ways ” 经典面试题,包含思路及源码,及解惑!题目A message containing letters from A-Z is being encoded to numbers using the following mapping:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26Given an encoded原创 2022-01-13 11:23:35 · 1373 阅读 · 1 评论 -
最强解析面试题:best-time-to-buy-and-sell-stock
文章目录最强解析面试题:best-time-to-buy-and-sell-stock题目示例1示例2思路代码附录最强解析面试题:best-time-to-buy-and-sell-stock文章讲解 “ best-time-to-buy-and-sell-stock ” 经典面试题,包含思路及源码,及解惑!题目Say you have an array for which the i th elementis the price of a given stock on day i.If yo原创 2022-01-14 10:15:46 · 251 阅读 · 1 评论 -
最强解析面试题:best-time-to-buy-and-sell-stock
文章目录最强解析面试题:best-time-to-buy-and-sell-stock题目示例1示例 2示例 3思路代码附录最强解析面试题:best-time-to-buy-and-sell-stock文章讲解 “ best-time-to-buy-and-sell-stock ” 经典面试题,包含思路及源码,及解惑!题目Say you have an array for which the i th element isthe price of a given stock on day i.原创 2022-01-17 13:56:03 · 281 阅读 · 0 评论 -
最强解析面试题:Goland 消费生产模式实现
最强解析面试题:Goland 消费生产模式实现原创 2021-12-27 10:35:23 · 1643 阅读 · 1 评论 -
最强解析面试题:x 的平方根(Sqrt(x))
最强解析面试题:x 的平方根(Sqrt(x))原创 2021-12-23 13:39:17 · 625 阅读 · 1 评论 -
最强解析面试题:回文数
最强解析面试题:回文数原创 2021-12-22 13:45:29 · 389 阅读 · 1 评论 -
最强解析面试题:Goland 循环队列实现
最强解析面试题:Goland 循环队列实现原创 2021-12-20 10:36:51 · 400 阅读 · 1 评论 -
最强解析面试题:魔术索引
最强解析面试题:魔术索引原创 2021-12-16 10:22:40 · 638 阅读 · 1 评论 -
最强解析面试题:合法序括号序列判断
最强解析面试题:合法序括号序列判断原创 2021-12-13 13:50:15 · 339 阅读 · 1 评论 -
最强解析面试题:链表反转[go版]
最强解析面试题:链表反转[go版]原创 2021-12-10 10:30:51 · 430 阅读 · 1 评论 -
最强解析面试题:堆箱子
最强解析面试题:堆箱子原创 2021-12-08 10:24:28 · 451 阅读 · 1 评论 -
最强解析面试题:合并两个排序的链表
文章目录最强解析面试题:合并两个排序的链表题目思路代码附录最强解析面试题:合并两个排序的链表文章讲解 “ 合并两个排序的链表 ” 经典面试题,包含思路及源码,及解惑!题目输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路递归算法;依次比较当前node值代码package mainimport . "nc_tools"/* * type ListNode struct{ * Val int * Next *ListNod原创 2021-12-06 10:34:44 · 333 阅读 · 1 评论 -
最强解析面试题:旋转数组查找
最强解析面试题:旋转数组查找原创 2021-12-02 13:31:40 · 229 阅读 · 0 评论 -
最强解析面试题:最大连续和
文章目录最强解析面试题:最大连续和题目思路代码附录最强解析面试题:最大连续和文章讲解 “ 最大连续和 ” 经典面试题,包含思路及源码,及解惑!题目给出一个长度为n的序列A1,A2,……,An,求最大连续和,即找到1<=i<=j<=n,使得Ai+Ai+1+…Aj尽量大。思路动态规划边界条件为 x=0 max = A1主线条件为 Max(tar[i], res[i-1]+tar[i])代码func main() { fmt.Println("res:"原创 2021-11-30 10:19:29 · 305 阅读 · 1 评论 -
最强解析面试题:洪水...
文章目录最强解析面试题:洪水...题目思路代码附录最强解析面试题:洪水…文章讲解 “ 洪水… ” 经典面试题,包含思路及源码,及解惑!题目有一个XxY的网格,洪水从首格涌出,可以向上下左右四个方向流向。请设计一个算法,计算有多少种走法。给定两个正整数int x,int y表示网格的大小,计算洪水的走法数目。思路动态规划边界条件为 x=0,y=0,res[x][y] = 1主线条件为 res[next_x][next_y] = res[now_x][now_y] + 1注意原创 2021-11-29 10:29:10 · 230 阅读 · 1 评论 -
最强解析面试题:机器人走方格
文章目录最强解析面试题:机器人走方格题目示例思路代码附录最强解析面试题:机器人走方格文章讲解 “ 机器人走方格 ” 经典面试题,包含思路及源码,及解惑!题目有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。给定两个正整数int x,int y表示网格的大小,计算机器人的走法数目。示例输入: x = 2;y=2输出:2思路动态规划边界条件为 x=1,y=1及 x=0 和 y=0主线条件为 res[i][原创 2021-11-25 10:35:29 · 394 阅读 · 1 评论 -
最强解析面试题:硬币计算 动态规划
文章目录最强解析面试题:硬币计算题目示例思路代码附录最强解析面试题:硬币计算文章讲解 “ 硬币计算 ” 经典面试题,包含思路及源码,及解惑!题目给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)示例输入: n = 5输出:2解释: 有两种方式可以凑成总金额:5=55=1+1+1+1+1思路动态规划n分的总数等于n分+n-m分[m为硬币分值],归结于前一总数的基础之上代码原创 2021-11-24 10:19:36 · 381 阅读 · 1 评论 -
最强解析面试题:接雨水...
文章目录最强解析面试题:接雨水...题目思路代码附录最强解析面试题:接雨水…文章讲解 “ 接雨水… ” 经典面试题,包含思路及源码,及解惑!题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。思路动态规划找到每个位置的最左和最右最大高度,取其小值与此位置高度比较,大则可储蓄雨水为差值代码package mainimport ("fmt")func main() { //var arr = []int{5,7,原创 2021-11-19 10:12:03 · 504 阅读 · 1 评论 -
最强解析面试题:n个小朋友手拉手围成一个环,1-3报数,报到3的退出,最后剩下的是的小朋友的下标
文章目录最强解析面试题:n个小朋友手拉手围成一个环,1-3报数,报到3的退出,最后剩下的是的小朋友的下标题目思路代码附录最强解析面试题:n个小朋友手拉手围成一个环,1-3报数,报到3的退出,最后剩下的是的小朋友的下标文章讲解 “ n个小朋友手拉手围成一个环,1-3报数,报到3的退出,最后剩下的是的小朋友的下标… ” 经典面试题,包含思路及源码,及解惑!题目n个小朋友手拉手围成一个环,1-3报数,报到3的退出,最后剩下的是的小朋友的下标…思路构建一数组,标记小朋友总数及是否退出;利用 %原创 2021-11-18 13:42:40 · 1326 阅读 · 1 评论 -
最强解析面试题:和为N的三个数字
文章目录最强解析面试题:和为N的三个数字题目思路代码附录最强解析面试题:和为N的三个数字文章讲解 “ 和为N的三个数字 ” 经典面试题,包含思路及源码,及解惑!题目和为N的三个数字。思路思路同前篇:和为S的两个数字,先固定一个,计算后两个。利用数组的非递减序,进行首尾同时便利,若之和超过给定值,则尾指针递减,反之首指针递增。排序之后可解决三数字集合重复的问题,注意每个数字都要进行判断去重代码package mainimport ("fmt""sort")func m原创 2021-11-17 10:35:10 · 371 阅读 · 1 评论 -
最强解析面试题:和为S的两个数字
文章目录最强解析面试题:和为S的两个数字题目示例1示例2思路代码附录最强解析面试题:和为S的两个数字文章讲解 “ 和为S的两个数字 ” 经典面试题,包含思路及源码,及解惑!题目输入一个递增排序的数组array和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,返回任意一组即可,如果无法找出这样的数字,返回一个空数组即可。示例1输入:[1,5,11],10返回值:[]说明:不存在,返回空数组示例2输入:[1,2,3,4],5返回值:[1原创 2021-11-16 10:09:48 · 665 阅读 · 1 评论 -
最强解析面试题:旋转数组的最小数字
文章目录最强解析面试题:旋转数组的最小数字题目示例1示例2思路代码附录最强解析面试题:旋转数组的最小数字文章讲解 “ 旋转数组的最小数字 ” 经典面试题,包含思路及源码,及解惑!题目有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。示例1输入:[3,4,5,1,2]返回值:1示例原创 2021-11-12 16:28:36 · 401 阅读 · 1 评论 -
最强解析面试题:二叉搜索树的第k个结点
文章目录最强解析面试题:二叉搜索树的第k个结点题目示例1示例2思路代码附录最强解析面试题:二叉搜索树的第k个结点文章讲解 “ 二叉搜索树的第k个结点 ” 经典面试题,包含思路及源码,及解惑!题目给定一棵结点数为 n 二叉搜索树,请找出其中的第 k 小的TreeNode结点。注意:不是返回结点的值示例1输入:{5,3,7,2,4,6,8},3返回值:4说明:按结点数值升序顺序可知第三小结点的值为4 ,故返回对应结点值为4的结点即可。示例2输入:{},1返回值:原创 2021-11-11 10:13:14 · 516 阅读 · 1 评论 -
最强解析面试题:二叉搜索树的后序遍历序列
文章目录最强解析面试题:二叉搜索树的后序遍历序列题目示例1示例2思路代码附录最强解析面试题:二叉搜索树的后序遍历序列文章讲解 “ 二叉搜索树的后序遍历序列 ” 经典面试题,包含思路及源码,及解惑!题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true ,否则返回 false 。假设输入的数组的任意两个数字都互不相同。数据范围: 节点数量 0 \le n \le 10000≤n≤1000 ,节点上的值满足 1 \le val \le 10^{5}1≤val原创 2021-11-10 13:21:51 · 579 阅读 · 1 评论 -
最强解析面试题:把字符串转换成整数
文章目录最强解析面试题:把字符串转换成整数题目示例1示例2思路代码一代码二附录最强解析面试题:把字符串转换成整数文章讲解 “ 把字符串转换成整数 ” 经典面试题,包含思路及源码,及解惑!题目将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0示例1输入:“+2147483647”返回值:2147483647示例2输入:“1a33”返回值:0思路1、区分 符号位 后,进行十进制计算数值代码一pac原创 2021-11-08 10:45:56 · 499 阅读 · 7 评论