快乐的程序员
面试题:实现errGroup 面试题:实现errGroup
写在前面实现一个ErrGroup(golang.org/x/sync/errgroup)的功能,实现Go,Wait两个方法即可,尽量不要用系统标准库,如sync.WaitGroup 分析源码type Group struct { canc
2024-05-08
害怕01背包问题的同学看过来,今天就把它讲清楚 害怕01背包问题的同学看过来,今天就把它讲清楚
写在前面背包问题相信是很多同学害怕的问题,包括作者自己。本文将彻底把01背包问题讲透彻,争取下次遇到类似问题能轻松解决。 最近面试遇到一个算法题:给定一个数组,如nums=[1,2,3,4,6],判断能不能将它分成2个子数组,2个子数组内元
2024-04-12
算法:求小于指定数字n的每个数字的质数数量之和 算法:求小于指定数字n的每个数字的质数数量之和
写在前面今天面试遇到一个算法题,不难,但是没有想到最优解,记录一下 题目描述给定一个数字n(2<=n<=100),计算[2,n]之间每个数字的质数的数量,返回总和 示例:n=8 解析:2=2,3=3,4=22,5=5,6=23,
2024-04-10
leetcode算法题:100277. 使数组中位数等于 K 的最少操作数 leetcode算法题:100277. 使数组中位数等于 K 的最少操作数
写在前面今天上午做leetcode周赛,第三题是:100277. 使数组中位数等于 K 的最少操作数 其实当时已经做的差不多了,但是有2个测试用例未通过,报超时了。事后看题解,思路根别人是一样的,但是别人用到的排序算法是go自带的sort
2024-04-07
二叉树前序、中序、后序非递归算法万能模板 二叉树前序、中序、后序非递归算法万能模板
写在前面之前介绍过面试题:二叉树的非递归前序遍历、面试题:二叉树的非递归中序遍历、面试题:二叉树的非递归后序遍历,感兴趣的同学可以先去看看那几篇文章。 前序和中序的非递归算法非常相似,包括后序的方法三介绍的算法也很相似。本文将总结这3个相似
2024-04-05
面试题:二叉树的非递归后序遍历 面试题:二叉树的非递归后序遍历
写在前面前面分别介绍了面试题:二叉树的非递归前序遍历和面试题:二叉树的非递归中序遍历,举一反三,本文介绍二叉树的非递归后序遍历 方法一作者觉得这是最简单的一种方法,就是用两个栈。 申请两个栈s1, s2。后序遍历的步骤如下: 申请一个栈记
2024-04-05
面试题:二叉树的非递归前序遍历 面试题:二叉树的非递归前序遍历
写在前面上一篇文章面试题:二叉树的非递归中序遍历介绍了非递归中序遍历,举一反三,本文来介绍一下非递归前序遍历。 写完非递归前序遍历后发现,思路和代码根非递归中序遍历差不多,代码相似度高达90%,先看代码 代码// 定义节点 type Nod
2024-04-04
面试题:最小栈 面试题:最小栈
写在前面栈,是一个先进后出的数据结构。面试中经常会遇到栈的变体,比如最小栈,leetcode上原题:最小栈 题目描述 思路拿到这个题,作者想法是用单链表维持一个递增队列,每层插入(push)或者删除(pop)的时候,往递增队列中插入或者删除
2024-04-04
面试题:二叉树的非递归中序遍历 面试题:二叉树的非递归中序遍历
写在前面最近面试遇到这个算法题,其实二叉树的前序、中序、后续非递归算法是最基本的、必须掌握的算法。但是这个题目花了我40分钟时间,实在不应该,今天总结一下,希望下次能记住。 思路二叉树的中序遍历,其实就是左-》中-》右,先访问左孩子,然后访
2024-04-04
栈在哪些场景用到过 栈在哪些场景用到过
写在前面在面试过程中被问到:在写代码或者项目开发过程中,栈在什么场景出现过? 作者只回答了:二叉树的后续遍历中用到了。go defer居然没有回答上,还有函数调用、递归也没有回答上,太弱了!!!今天总结一下。 栈的使用场景函数调用栈在编程语
2024-03-25
算法题:异或运算 算法题:异或运算
写在前面今天做了leetcode上一个简单题,看了挺久没做出来。感兴趣的可以先试试题目再往下看。只出现一次的数字 思路这题拿到手,第一反应是用hash表,没有思考细节,只是觉得hash表肯定是可以搞定的,但是空间复杂度是 O(n),不满足题
2024-03-24
华为一面算法题:打印螺旋三角形 华为一面算法题:打印螺旋三角形
写在前面最近面试了华为go开发,一面中遇到一个算法题,也不是很难,在leetcode上应该属于中等难道。20分钟问问题,40分钟写算法题。 这个算法题最终没有写出来,思路是对的,边界情况考虑有点问题,事后大概花了半个小时才调试处理。 整理一
2024-03-24
1 / 3