随笔分类 - 福大大架构师每日一题
摘要:2021-04-12:判断二叉树是否是搜索二叉树? 福大大 答案2021-04-12: 中序遍历有序即可。 1.递归。 2.莫里斯遍历。 代码用golang编写。代码如下: package main import "fmt" const INT_MAX = int(^uint(0) >> 1) co
阅读全文
摘要:2021-04-11:判断二叉树是否是完全二叉树? 福大大 答案2021-04-11: 按层遍历。 代码用golang编写。代码如下: package main import ( "container/list" "fmt" ) func main() { head := &TreeNode{Val
阅读全文
摘要:2021-04-10:给定两个可能有环也可能无环的单链表,头节点head1和head2。请实现一个函数,如果两个链表相交,请返回相交的 第一个节点。如果不相交,返回null。【要求】如果两个链表长度之和为N,时间复杂度请达到O(N),额外空间复杂度 请达到O(1)。 福大大 答案2021-04-10
阅读全文
摘要:2021-04-09:rand指针是单链表节点结构中新增的指针,rand可能指向链表中的任意一个节点,也可能指向null。给定一个由Node节点类型组成的无环单链表的头节点 head,请实现一个函数完成这个链表的复制,并返回复制的新链表的头节点。 【要求】时间复杂度O(N),额外空间复杂度O(1)
阅读全文
摘要:2021-04-08:给定一个单链表的头节点head,请判断该链表是否为回文结构。 福大大 答案2021-04-08: 1.找中点。 2.按中点切分成两个链表。 3.反转右边链表。 4.相等判断。 5.反转右边链表。 6.左右链表合并。 7.返回true或者false。 代码用golang编写。代码
阅读全文
摘要:2021-04-07:给定一个非负数组arr,长度为N,那么有N-1种方案可以把arr切成左右两部分,每一种方案都有,min{左部分累加和,右部分累加和},求这么多方案中,min{左部分累加和,右部分累加和}的最大值是多少? 整个过程要求时间复杂度O(N)。 福大大 答案2021-04-07: 自然
阅读全文
摘要:2021-04-06:假设有一个源源吐出不同球的机器,只有装下10个球的袋子,每一个吐出的球,要么放入袋子,要么永远扔掉。如何做到机器吐出每一个球之后,所有吐出的球都等概率被放进袋子里。 福大大 答案2021-04-06: i为球的序号。i从1开始,小于等于10的时候直接进袋子。i大于10的时候,1
阅读全文
摘要:2021-04-05:给两个长度分别为M和N的整型数组nums1和nums2,其中每个值都不大于9,再给定一个正数K。 你可以在nums1和nums2中挑选数字,要求一共挑选K个,并且要从左到右挑。返回所有可能的结果中,代表最大数字的结果。 福大大 答案2021-04-05: 自然智慧想不到,需要练
阅读全文
摘要:2021-04-04:给定一个非负数组arr,和一个正数m。 返回arr的所有子序列中累加和%m之后的最大值。 福大大 答案2021-04-04: 自然智慧即可。 1.递归,累加和。 2.动态规划,累加和。 3.动态规划,累加和%m。 4.双向动态规划,累加和%m。 代码用golang编写。代码如下
阅读全文
摘要:2021-04-03:给定两个字符串str1和str2,想把str2整体插入到str1中的某个位置,形成最大的字典序,返回字典序最大的结果。 福大大 答案2021-04-03: 1.暴力法。 2.DC3算法。自然智慧想不到,需要练敏感度。 2.1.构造字符串。str = str1+最小字符+str2
阅读全文
摘要:2021-04-02:给定一个正方形或者长方形矩阵matrix,实现zigzag打印。[[0,1,2],[3,4,5],[6,7,8]]的打印顺序是0,1,3,6,4,2,5,7,8。 福大大 答案2021-04-02: 两个for循环嵌套。 外层循环。先遍历第一列,再遍历不包含列号为0的最后一行。
阅读全文
摘要:2021-04-01:给定一个正方形矩阵matrix,原地调整成顺时针90度转动的样子。[[a,b,c],[d,e,f],[g,h,i]]变成[[g,d,a],[h,e,b],[i,f,c]]。 福大大 答案2021-04-01: 四数交换。先外圈交换,再内圈交换。 代码用golang编写。代码如下
阅读全文
摘要:2021-03-31:给定一个数组arr,给定一个值v。求子数组平均值小于等于v的最长子数组长度。 福大大 答案2021-03-31: 这道题是昨天每日一题的变种。数组每个元素减v,然后求<=0的最长子数组长度。 1.前缀和+有序表。时间复杂度O(N*lgN)。无代码。 2.滑动窗口。时间复杂度O(
阅读全文
摘要:2021-03-30:给定一个整数组成的无序数组arr,值可能正、可能负、可能0。给定一个整数值K,找到arr的所有子数组里,哪个子数组的累加和<=K,并且是长度最大的。返回其长度。 福大大 答案2021-03-30: 1.前缀和+有序表。时间复杂度O(N*lgN)。无代码。 2.滑动窗口。时间复杂
阅读全文
摘要:2021-03-29:无序数组arr,子数组-1和1的数量一样多,请问最长子数组的长度是多少? 福大大 答案2021-03-29: [1, -1, 2, 3, -4, -1, 9]变成[1, -1, 0, 0, 0, -1, 0],累加和等于0的最长子数组长度,就是所需要的值。 求前缀和,存map。
阅读全文
摘要:2021-03-28:定义一种数:可以表示成若干(数量>1)连续正数和的数 。比如:5 = 2+3,5就是这样的数 ;12 = 3+4+5,12就是这样的数 。1不是这样的数,因为要求数量大于1个、连续正数和 。2 = 1 + 1,2也不是,因为等号右边不是连续正数 。给定一个参数N,返回是不是可以
阅读全文
摘要:2021-03-27:给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。输入:head = 1→2→3→4→5, k = 2,输出:4→5→1→2→3。 福大大 答案2020-03-27: 1.找尾节点并且计算链表节点个数。 2.如果k大于等链表节点个数,需要取模,k一
阅读全文
摘要:2021-03-26:给定一个正整数N,表示有N份青草统一堆放在仓库里。有一只牛和一只羊,牛先吃,羊后吃,它俩轮流吃草。不管是牛还是羊,每一轮能吃的草量必须是:1,4,16,64…(4的某次方)。谁最先把草吃完,谁获胜。假设牛和羊都绝顶聪明,都想赢,都会做出理性的决定。根据唯一的参数N,返回谁会赢。
阅读全文
摘要:2021-03-25:如何把长url转换为短url? 福大大 答案2021-03-25: 1.长url和短url一一映射。想采用某种算法,把长url和短url做一一映射。后来发现,这种方法是行不通的。如果行得通,那么压缩算法就是一片新天地了。失败方法。 2.用哈希。这种方法无法还原url,依然需要保
阅读全文
摘要:2021-03-24:给定一个整数组成的无序数组arr,值可能正、可能负、可能0。给定一个整数值K,找到arr的所有子数组里,哪个子数组的累加和等于K,并且是长度最大的。返回其长度。 福大大 答案2021-03-24: 我刚开始的想法,是对数组的每一位加上一个值,把数组全部变成非负数。比如[-5,3
阅读全文

浙公网安备 33010602011771号