
刷题
心怀梦想的咸鱼
这个作者很懒,什么都没留下…
展开
-
填充每个节点的下一个右侧节点指针 II
给定一个二叉树struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。思路:通常而言,这种题目和层序遍历有分不开的关系,使用队列辅助实现,空间复杂度为O(N),完成代码如下class Solution {public: Node* connect原创 2020-09-24 11:17:36 · 245 阅读 · 0 评论 -
每日一题回溯算法
今天要写的题目是剑指 Offer 38. 字符串的排列输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]万物皆可暴力,但是时间复杂度太高了,因此我们可以考虑dfs和回溯算法需要注意的是如果给出了的字符串有重复字符,则需要剪枝操作。下面为回溯的代码class Solution {public:vector<stri原创 2020-09-24 07:58:26 · 165 阅读 · 0 评论 -
滑动窗口的最大值
每天学一点,今天解决的是剑指offer的剑指 Offer 59 - I. 滑动窗口的最大值。输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 31 3 [-1 -3 5] 3 6 7 51 3 -1 [-3 5 3] 6原创 2020-09-23 23:57:20 · 196 阅读 · 0 评论 -
每日一题总结二叉树的层平均值
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例 1:输入:3/ 9 20/ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。这道题的实质是考察层序遍历,深度优先搜索和广度优先搜索对深度优先而言,需要维护两个序列,一个用来保存节点数,一个用来保存节点之和,最后除。对于深度优先而言DSF函数需要四个参数,根节点,当前层数,节点数队列,节点队列DFS原创 2020-09-12 11:03:14 · 193 阅读 · 0 评论 -
每日一题:动态规划
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号...原创 2019-11-24 20:49:27 · 162 阅读 · 0 评论 -
每日一题
给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。class Solution {public: int maxArea(vector<i...原创 2019-11-24 14:01:34 · 212 阅读 · 0 评论 -
笔试题
当时没想通,现在想想这道题根本不是编程题而是一道数学题在地下室里放着n种颜色的手套,手套分左右手,但是每种颜色的左右手手套个数不一定相同。A先生现在要出门,所以他要去地下室选手套。但是昏暗的灯光让他无法分辨手套的颜色,只能分辨出左右手。所以他会多拿一些手套,然后选出一双颜色相同的左右手手套。现在的问题是,他至少要拿多少只手套(左手加右手),才能保证一定能选出一双颜色相同的手套。给定颜色种数...原创 2019-11-23 22:04:56 · 374 阅读 · 0 评论 -
leecode刷水题
大佬估计对水题没什么兴趣,所以就轮到我刷刷水题,提高一点自信心了:D1021.有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(prim...原创 2019-10-06 11:20:43 · 180 阅读 · 0 评论 -
string刷题笔记
增减字符串匹配给定只含 “I”(增大)或 “D”(减小)的字符串 S ,令 N = S.length。返回 [0, 1, …, N] 的任意排列 A 使得对于所有 i = 0, …, N-1,都有:如果 S[i] == “I”,那么 A[i] < A[i+1]如果 S[i] == “D”,那么 A[i] > A[i+1]来源:力扣(LeetCode)链接:https:/...原创 2019-09-28 17:25:10 · 160 阅读 · 0 评论 -
剑指offer(1-20)
1.定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路:需要两个栈,主栈和辅助栈,每次插入主栈的值时确定,插入的值比辅助栈top大还是比辅助栈top小,只有在辅助栈的size为0或者比辅助栈小的情况下入辅助栈栈,pop操作也是同理,pop的值与辅助栈做比较,当相同时辅助栈做出栈操作。class Solution {public: ...原创 2019-09-27 21:24:43 · 133 阅读 · 0 评论 -
[编程题]奇异数 热度指数
链接:https://www.nowcoder.com/questionTerminal/7442938f5012486499ddd61ce16f9086来源:牛客网如果一个数字满足以下条件,我们就称它为奇异数:1、这个数字至少有两位2、这个数的最低两位是相同的比如: 1488是一个奇异数,而3、112不是。牛牛现在给出一个一个区间[L,R],让你计算出在区间内有多少个奇异数思路:...原创 2019-09-07 12:09:03 · 424 阅读 · 0 评论