二哥带你学编程
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 3 无重复字符的最长子串
这是刚刚学到的算法——滑动窗口法Sliding Window, 题目如下给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入...原创 2019-06-04 21:47:39 · 647 阅读 · 0 评论 -
leetcode104(二叉树的最大深度)
数据结构课上刷的,我感觉我开始对递归这个概念开始比较清晰了。题目如下给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7首先我实现了两种做法,都是DFS,一...原创 2019-05-13 14:48:55 · 1313 阅读 · 0 评论 -
一次神奇的数据生成经历
本来今天说偷下懒,不写题了,结果晚上的时候yzc大佬和我说有一道题一直WA,叫我给他搞点数据过来。然后就开始搞数据,搞了一晚上,就是需要用生成这样的数据,还比较复杂。题目链接第一行 教室数量 管道数量 0<N<=10000,0<M<20000第二行 教室数量个数字 0<=Vi<=1000第三到3+M行 每行两个数字 要求生成的这n行属于同个集合啊啊啊 ...原创 2019-05-26 00:01:15 · 255 阅读 · 0 评论 -
leetcode100 相同的树
题目如下给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 ...原创 2019-05-12 11:44:33 · 121 阅读 · 0 评论 -
leetcode1041困于环中的机器人
题目如下,一道简单的模拟在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。机器人可以接受下列三条指令之一:"G":直走 1 个单位"L":左转 90 度"R":右转 90 度机器人按顺序执行指令 instructions,并一直重复它们。只有在平面中存在环使得机器人永远无法离开时,返回 true。否则,返回 false。题解可以通过观察发现,机器人最多进行4次输入的...原创 2019-05-21 16:22:05 · 258 阅读 · 0 评论 -
leetcode101对称二叉树
题目如下给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解决...原创 2019-05-11 23:20:35 · 168 阅读 · 0 评论 -
leetcode22 生成括号
这道题我感觉还挺好的,我调了比较长的时间题目如下给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]题解首先我们分析一下什么时候两个括号可以加入一个字符串,首先看(,显然只要(的数量没...原创 2019-05-24 13:54:04 · 163 阅读 · 0 评论 -
leetcode112(路径总和)
DFS+双栈常规题,题目如下给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ ...原创 2019-05-15 16:13:36 · 146 阅读 · 0 评论 -
leetcode326(3的幂)
题目如下给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?最简单解法当然是O(n)O(n)O(n),直接使用顺序遍历查找,就不写代码了。重点关注的是如何找出...原创 2019-05-10 16:12:53 · 314 阅读 · 0 评论 -
leetcode134 加油站
题目如下在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明: 如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输...原创 2019-05-17 12:51:43 · 167 阅读 · 0 评论 -
leetcode62 不同路径
题目如下一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3...原创 2019-05-22 19:10:16 · 168 阅读 · 0 评论 -
leetcode 98 验证二叉搜索树
题目如下给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 ...原创 2019-06-03 14:29:27 · 229 阅读 · 0 评论 -
leetcode 29 两数相除
这题挺好的!给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和...原创 2019-05-29 16:32:14 · 182 阅读 · 0 评论 -
leetcode 5最长回文子串 (leetcode一周目结束)
不知不觉就刷完了五十道leetcode算法题,这么算起来整个大一也差不多刷了120题左右的样子。虽然大一上很遗憾没有继续坚持打ACM,但是同样也有了很多学习其他除了算法外的知识的时间,不过刷题确实可以改变代码习惯和提高编程水平,这也是我坚持学习算法的原因。这一周目的刷题就到此为止了,我的大一的算法+开发并行的学习方式给我的让我的代码水平有了很大的提高。大二开始我应该就开始专注学习Java开发了。啊...原创 2019-06-05 22:27:57 · 246 阅读 · 0 评论 -
leetcode33 搜索旋转排序数组
昨天再公众号上看到了这道题,今天一搜索发现真的有。题目如下假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例...原创 2019-05-28 16:29:25 · 164 阅读 · 0 评论 -
leetcode 17 电话号码的字母组合
这道题目在Leetcode下的标签是回溯法,题目如下给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选...原创 2019-05-23 19:18:51 · 238 阅读 · 0 评论 -
leetcode 72 编辑距离
一道dp题,题目如下给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = "horse", word2 = "ros"输出: 3解释: horse -> rorse (将 'h' 替换为 'r')rorse -...原创 2019-05-30 17:46:22 · 179 阅读 · 0 评论 -
leetcode 144(二叉树的前序遍历)
水题一道,题目如下给定一个二叉树,返回它的 前序 遍历。 示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?题解1. 递归import java.util.ArrayList;/** * Definition for a binary tree ...原创 2019-05-18 15:01:11 · 263 阅读 · 0 评论 -
leetcode 2(两数相加)
一道链表题,但是我发现我链表不太会搞,主要还是对java中的引用机制没有完全理解,过几天补一下这道题目如下给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2...原创 2019-05-27 12:41:30 · 154 阅读 · 0 评论 -
leetcode 200岛屿的个数(并查集)
这几天刷一下并查集的题目,这道题目是这样的给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3...原创 2019-05-07 18:39:30 · 945 阅读 · 0 评论 -
leetcode101 二叉树的层次遍历
这道题相当于标准DFS的一点变化。题目如下给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]记忆化+DFS题解开这道题目...原创 2019-05-14 19:41:53 · 170 阅读 · 0 评论 -
leetcode111(二叉树的最小深度 变题)
题目如下给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.这道题是二叉树的最大深度的变题,但是题目需要考虑的东西多了很多我还是...原创 2019-05-14 17:40:31 · 268 阅读 · 0 评论 -
leetcode35 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0题...原创 2019-03-28 14:21:15 · 145 阅读 · 0 评论 -
leetcode28 strStr()
被这题演了!!!少看了一个条件啊啊啊啊啊啊啊,题目是这样的实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入...原创 2019-03-27 23:12:11 · 162 阅读 · 0 评论 -
leetcode 27移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两...原创 2019-03-26 21:52:23 · 162 阅读 · 0 评论 -
Leetcode 21合并两个有序链表
咕咕咕,之前忙着看Django,又咕了leetcode好多天,今天开始每天一题leetcode加题解启动(发出了不咕咕咕的叫声今天的题目是这样的将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题意清晰,是一道...原创 2019-03-25 20:55:39 · 418 阅读 · 0 评论 -
LeetCode 7整数反转
这道题真的是折射出我的python基础不太扎实给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢...原创 2019-03-11 02:30:14 · 115 阅读 · 0 评论 -
LeetCode 1两数之和
好久没刷LeetCode了,这几个月打算重新补一下算法,那就从第一题重新刷了,顺便写一组解题报告给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 ...原创 2019-03-11 01:08:41 · 114 阅读 · 0 评论 -
leetcode 14最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar",&quo原创 2019-03-14 13:58:15 · 170 阅读 · 0 评论 -
Leetcode 13罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。1...原创 2019-03-14 01:04:11 · 211 阅读 · 0 评论 -
CCF之数字出现次数排序
这道题是python程序设计课的作业题,感觉挺好的,一搜发现是CCF2015的题目,题目如下【问题描述】给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。【输入形式】第一行包含一个整数n,表示给定数字的个数; 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。【输出形式】输出有多行,每行包含两个整数,分别表示一个给定的整数和它出现的次...原创 2019-04-02 13:13:59 · 688 阅读 · 0 评论 -
Python 整数的N进制字符串表示,循环和函数_亲密数,DNA匹配A
这次作业终于碰到需要思考的题目了(呜呜呜1. DNA匹配A【问题描述】编写与字符串对象的find方法功能相似的函数find(srcString, substring, start, end),作用是在srcString串的下标start到下标end之间的片段中寻找subString串的第一次出现的位置,返回该位置值;如果没找到,返回-1。编写程序,输入源串和子串,检验find(someStr...原创 2019-04-22 20:17:42 · 3423 阅读 · 1 评论 -
leecode88 合并两个有序数组
水题 练java题目如下给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], ...原创 2019-05-09 18:21:11 · 143 阅读 · 0 评论 -
leetcode1037 有效的回旋镖(Java练习)
纯粹水题,纯粹是为了让我从python舒适的语法糖使用体验中调整到Java的一些常用方法;题目不放了,太简单了。代码如下class Solution { public boolean isBoomerang(int[][] points) { if(points[0][0] == points[1][0]&& points[0][0] == ...原创 2019-05-09 15:38:16 · 328 阅读 · 0 评论 -
leetcode547朋友圈(并查集)
这是我和yzc大佬在数据结构课上写的题,我:并查集我一点概念都没有。 yzc大佬:你做做试试。然后我就开了这道题。我写了十分钟,妈的这个并查集怎么写,感觉只会DFS。然后yzc大佬接手,五分钟后,AC。然后我盯着他的代码看了半天没看懂。下课后,丫的突然开窍,好简单,我可以!题目是这样的班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B...原创 2019-05-06 14:49:09 · 667 阅读 · 0 评论 -
leetcode584(冗余连接).py
这几天一直在做并查集的题目,感觉做起来越来越顺手了。这道题题目是这样的在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接...原创 2019-05-08 17:46:59 · 263 阅读 · 0 评论 -
leetcode94 二叉树的中序遍历(递归和非递归版本)
输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?题目说递归实现很简单,但是我只会用迭代算法算1.非递归版本通常树的遍历会使用到栈这一数据结构作为辅助,我的思路是先从根节点,在一个循环条件下(循环条件为栈非空(即该节点的上方还有未遍历的节点) or 节点本身非空),向左子...原创 2019-05-05 18:23:43 · 300 阅读 · 0 评论 -
leetcode 83删除排序链表的重复元素
突然感觉自己对链表题还不是很熟,有点弄不清楚链表中间是怎么断链再重接的了这道题目如下给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3```由于是一个已经排好序的链表,所以只需要判断,前一个节...原创 2019-05-05 00:00:10 · 114 阅读 · 0 评论 -
leetcode 53最大子序和
题目是这样的给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。看到题目直接先来最暴力的解法 O(n2n^2n2)...原创 2019-05-02 17:44:04 · 122 阅读 · 0 评论 -
python字符串问题—文件排版
问题描述【问题描述】英文电影中参演人员名单一般以某种方式进行排版显示。给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号':'分隔成前后两部分,但格式杂乱无章,单词(由除空格和水平制表符之外的其它字符构成)之间可能有多个空格或水平制表符分隔。编写程序,要求将其按如下排版规则排版输出到另一个文件listout.txt中:1.从标准输入(即键盘)读取一整数,作为排版后所有...原创 2019-04-27 14:32:28 · 2702 阅读 · 0 评论