自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Johnson的博客

一个程序员的学习之路

  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 【每日一题】LeetCode. 84. 柱状图中最大的矩形

每日一题,防止痴呆 = =一、题目大意给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-rectangle-in-histogram二、题目思路以及AC代码这道题被之前写的一道题迷惑思路了。 https://leetcode-cn.com/problems/container-wit.

2020-05-30 11:41:30 272

原创 【每日一题】LeetCode. 198. 打家劫舍

每日一题,防止痴呆 = =一、题目大意你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/house-robber二、题目思路以及AC代码这道题一看就.

2020-05-29 10:30:08 437

原创 【每日一题】LeetCode. 394. 字符串解码

每日一题,防止痴呆 = =一、题目大意给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。来源:力扣(LeetCode)链接:https://l.

2020-05-28 17:09:09 672

原创 【每日一题】LeetCode. 287. 寻找重复数

每日一题,防止痴呆 = =一、题目大意给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-the-duplicate-number二、题目思路以及AC代码这道题刚看到的时候以为是用异或做了 = =,结果发现题目中说重复数的重复次数可能大于1次,这用异或就没有办法.

2020-05-28 10:41:51 290

原创 【每日一题】LeetCode. 4. 寻找两个正序数组的中位数

每日一题,防止痴呆 = =一、题目大意给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays二、题目思路以及AC代码前两天要搞毕设的查重降重,无奈拖了两天,今天就搞两.

2020-05-26 16:44:33 1419

原创 【每日一题】LeetCode. 76. 最小覆盖子串

每日一题,防止痴呆 = =一、题目大意给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-window-substring二、题目思路以及AC代码对于这种找子串的题,思路其实也不是很复杂,目前看来无非是双指针的方法或者DP,稍加思考也可以得到答案。思路本题的思路就是利用双指针,即 l 和 r,开始都在字符串最左端,当 l 和 r.

2020-05-23 10:35:12 256

原创 【每日一题】LeetCode. 105. 从前序与中序遍历序列构造二叉树

每日一题,防止痴呆 = =一、题目大意根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal二、题目思路以及AC代码这道题好像之前数据结构的课做过 = =。思路做这道题的基础,是了解二叉树的前序遍历和中序遍历。前序遍历是先遍历树的根,然后遍历左子.

2020-05-22 21:38:29 210

原创 【每日一题】LeetCode. 680. 验证回文字符串Ⅱ

每日一题,防止痴呆 = =一、题目大意给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-palindrome-ii二、题目思路以及AC代码思路这题无非就是在验证回文字符串的基础上增加了一个条件,就是如果删除一个字符可以构成回文字符串也可以,那么我们还是按照以往的方法,设定左右两个指针来验证回文字串,只不过在验证的时候如果第一次碰到不相等的可以先跳过,当遇到第.

2020-05-19 09:44:09 409

原创 【每日一题】LeetCode. 152. 乘积最大子数组

每日一题,防止痴呆 = =一、题目大意给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-product-subarray二、题目思路以及AC代码一开始看到这道题,这不动态规划吗,O(n)就出来了,然后发现我那个动态规划没有考虑负负得正的情况 = =思路这道题实际的思路也确实是动态规划,只不过需要考.

2020-05-18 10:29:25 953

原创 【每日一题】LeetCode. 210. 课程表Ⅱ

每日一题,防止痴呆 = =一、题目大意现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/course-.

2020-05-17 10:14:27 370

原创 【每日一题】LeetCode. 25. K个一个翻转链表

每日一题,防止痴呆 = =一、题目大意给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-nodes-in-k-group二、题目思路以及AC代码这题虽然LeetCode标记的是困难,但并没有用的算法,考察的我感觉只是指针理解和实现的问题。我的.

2020-05-16 11:24:37 184

原创 【每日一题】LeetCode. 560. 和为k的子数组

每日一题,防止痴呆 = =一、题目大意给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subarray-sum-equals-k二、题目思路以及AC代码我一开始一看这道题,就把DP和暴力的想法给否定了,数组长度 20000,肯定不能n^2的复杂度,当然DP如果可能是n的复杂度是可以考虑的,但我没想到 = =。然后就是感觉比较常规的思路,要求某区间的和为k.

2020-05-15 10:52:36 189

原创 【每日一题】LeetCode. 136. 只出现一次的数字

每日一题,防止痴呆 = =一、题目大意给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-number二、题目思路以及AC代码当我看到这题的时候,一分钟就把答案写完了 = =,这是我当时去商汤实习的时候面试的原题,再一次印证了,多做题才能有思路,之后直.

2020-05-14 09:55:44 274 3

原创 【每日一题】LeetCode. 102.二叉树的层次遍历

每日一题,防止痴呆 = =一、题目大意给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal二、题目思路以及AC代码这题就很常规的题,LeetCode居然分类为中等,确实这个分类有点迷,反正就当复习一下以前的知识吧。思路要按层进行遍历,并且存储下来,只需要在BFS的时候,每次先计算一.

2020-05-13 09:38:49 252

原创 【每日一题】LeetCode. 155. 最小栈

每日一题,防止痴呆 = =一、题目大意设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/min-stack二、题目思路以及AC代码这次的每日一题是要设计一个数据结构,最小栈,相比于我们通常学.

2020-05-12 10:27:09 191

原创 【每日一题】LeetCode. 50. Pow(x, n)

每日一题,防止痴呆 = =一、题目大意实现 pow(x, n) ,即计算 x 的 n 次幂函数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/powx-n二、题目思路以及AC代码这个思路就明显的不能再明显了,幂次这么大,肯定是用快速幂算法才不会超时,下面就简单的说一下快速幂算法递归和迭代的两种思路,具体可以参看这篇博客,我觉得讲的还是很详细的。https://blog.csdn.net/Harington/article/detai.

2020-05-11 09:45:10 202

原创 【每日一题】LeetCode. 236. 二叉树的最近公共祖先

每日一题,防止痴呆 = =一、题目大意给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lowes.

2020-05-10 11:52:11 156

原创 【每日一题】LeetCode. 69. x的平方根

每日一题,防止痴呆 = =一、题目大意二、题目思路以及AC代码这题确实思路很多,但是确实没有想到可以用数值计算的方法求解 = =。思路一首先比较有意思的是,可以直接用STL的sqrt方法通过,虽然这样通过的也没什么用,毕竟不是考你调库。思路二可以直接暴力,即遍历1~x的所有整数,遍历元素为i,如果ii等于x,那么结果就是i,如果没有遇到相等的,但第一次遇到ii > x,那么 i-1 就是结果。思路三既然可以暴力遍历,由于这题又有顺序,就也可以二分,思路同上,需要注意的是,可能mi.

2020-05-09 10:09:32 171

原创 【每日一题】LeetCode. 221. 最大正方形

每日一题,防止痴呆 = =一、题目大意在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximal-square二、题目思路以及AC代码这题之前见过,所以就秒做了,好像还是某一年清华出的机试题还是啥,反正之前在准备机试的时候做过这道题,果然,...

2020-05-08 09:47:44 291

原创 【每日一题】LeetCode. 572. 另一个树的子树

每日一题,防止痴呆 = =隔了一天,果然脑子秀逗了不少。一、题目大意给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subtree-of-another-...

2020-05-07 20:44:19 173

原创 【每日一题】LeetCode. 98. 验证二叉搜索树

每日一题,防止痴呆 = =一、题目大意给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/validate-binary-sear...

2020-05-05 10:59:12 204 1

原创 【每日一题】LeetCode. 45. 跳跃游戏Ⅱ

每日一题,防止痴呆 = =一、题目大意给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/jump-game-ii二、题目思路以及AC代码超时思路一:看到这题,第一个想法是...

2020-05-04 11:26:14 261

原创 【每日一题】LeetCode. 53. 最大子序和

每日一题,防止痴呆 = =一、题目大意给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray二、题目思路以及AC代码本...

2020-05-03 14:14:14 185

原创 【每日一题】LeetCode. 3. 无重复字符的最长子串

每日一题,防止痴呆 = =一、题目大意给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。二、题目思路以及AC代码好长时间没做题,看到这题第一反应还以为是DP,还是我太年轻了。这题不管实现如何,思路都是一致的,即滑动窗口的方法,利用双指针枚举不重复的最长子串。这里提供两个思路,一个是自己想的,一个是题解中的。第一个思路,首先,我们设定起始和终止指针,保持起始指针不懂...

2020-05-02 11:40:24 185

原创 【每日一题】LeetCode. 21. 合并两个有序链表

每日一题,防止痴呆 = =一、题目大意将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists二、题目思路以及AC代码难道因为是五一,所以又是给的福利题吗?还是之前做过一套题中的子问题 = =,Any...

2020-05-01 10:02:04 205

可用于保研联系的机试练习题整理.zip

这是博主当时自己保研时所用的机试联系题,可以作为一个机试的参考吧,博主自己已于2019年保研中保到了清华大学计算机系,详情可参见博客https://blog.csdn.net/m0_38055352/article/details/102887818

2020-05-05

拼音汉字对照表

拼音汉字对照表,格式已整理好,可直接应用于自然语言处理。(经过实践检验可以使用)

2018-11-24

空空如也

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

TA关注的人

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