自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 [leetcode-2018年408数据结构算法]41. 缺失的第一个正数

缺失的第一个正数题目思路原地哈希代码算法复杂度总结题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难用时:–(确实比较难想到)题目给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。思路原地哈希记录一下,学习le

2020-11-22 08:07:09 7

原创 [leetcode每日一题2020/9/20]78. 子集

子集题目思想代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:9min(难得一遍过(测试的时候))题目给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]思想方法一:回溯中,子集树的思想方法二:枚举0~

2020-09-20 08:50:33 13

原创 [leetcode每日一题2020/9/9]39. 组合总和

组合总和题目思路如何找出不重复的组合?代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:大概20min题目给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。 解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7]

2020-09-09 09:07:58 26 2

原创 [leetcode每日一题2020/9/8]77. 组合

组合题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:大概40min题目给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]思路对于n=4,k=2这个例子我们可以通过合理的枚举,输出所有可能的组合形式枚举1~4中 k=2的1的可能所有组合就等于

2020-09-08 09:41:00 24

原创 [leetcode每日一题2020/9/7]347. 前 K 个高频元素

前 K 个高频元素题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:大概30min题目给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]思路本题类似【第k大的元素】的题目。故解法与其类似。1. 直接排序 O(logn)(好像这题会超时)2. 堆先建最小堆:O

2020-09-07 10:20:42 29

原创 [leetcode每日一题2020/9/5]117. 二叉树的层次遍历 II

二叉树的层次遍历 II题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:只能做做简单题了题目给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]

2020-09-06 10:12:18 27

原创 [leetcode每日一题2020/9/4]257. 二叉树的所有路径

二叉树的所有路径题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:10分钟左右(比较简单题目给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3思路DFS当前结点的路径 =

2020-09-04 09:49:28 17

原创 [leetcode每日一题2020/8/21]111. 二叉树的最小深度

二叉树的最小深度题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:10分钟左右题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.思路比较简单就是,广度遍历,按层,每进入一层,【答案

2020-08-21 10:24:35 38

原创 [leetcode每日一题2020/8/18]109. 有序链表转换二叉搜索树

有序链表转换二叉搜索树题目思路代码分治+先序遍历分治+中序遍历算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:忘了,应该不是很久,一开始还没想到【中序遍历】题目给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5

2020-08-18 17:59:12 57

原创 [leetcode每日一题2020/8/17]110. 平衡二叉树

平衡二叉树题目思路代码自顶向下自底向上算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:10:00 (一开始有小漏洞)题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:

2020-08-17 09:24:26 101

原创 [leetcode每日一题2020/8/16]733. 图像渲染

图像渲染题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:10:00 (难得一遍过)题目有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符

2020-08-16 10:19:10 45

原创 [leetcode每日一题2020/8/14]20. 有效的括号

有效的括号题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:10:00 (特殊情况忘记考虑了)题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入:

2020-08-14 09:57:19 37

原创 [leetcode每日一题2020/8/13]43. 字符串相乘

字符串相乘题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:02:00:00 (想法有点多,矛盾了好久)题目给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和

2020-08-13 13:25:30 38

原创 [leetcode每日一题2020/8/12]133. 克隆图

克隆图题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:01:00:00 (思路很快就有了,后面稍微修正了一下,也挺快的)题目给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:

2020-08-12 11:21:26 55

原创 [leetcode每日一题2020/8/11]130. 被围绕的区域

被围绕的区域题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:00:10:00 (看了示例的解释之后,豁然开朗啊)题目给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区

2020-08-11 12:44:20 69 1

原创 [leetcode每日一题2020/8/10]696. 计数二进制子串

计数二进制子串题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:20:00 (一开始没往最优算法想。。硬是想着优化了)题目给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“001

2020-08-10 13:21:07 60

原创 [leetcode每日一题2020/8/9]93. 复原IP地址

复原IP地址题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:01:00:00 (突然就写出来了)题目给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]思路由于是ipv4的地址格式,那么分析可以

2020-08-09 14:01:09 83

原创 [leetcode每日一题2020/8/7]100. 相同的树

相同的树题目思路如何记录一棵树的结构?代码官方提供的优法算法算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:20:00(出了个小意外,总体来说比较简单)题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,

2020-08-07 18:59:52 41

原创 [leetcode每日一题2020/8/6]336. 回文对

回文对题目思路代码未优化算法优化算法算法复杂度分析本代码结果题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难用时:03:00:00(看攻略了,这题解法确实没想到)题目给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。示例 1:输入: ["abcd","dcba","lls","s","sssll"]输出: [[0,1],[1,0],[3,2],[2,4]] 解释: 可拼接成

2020-08-06 23:24:09 55

原创 [leetcode每日一题2020/8/5]337. 打家劫舍 III

打家劫舍 III题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:03:00:00(大概3小时吧,思路有点bug)题目在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况

2020-08-05 18:50:05 54

原创 [leetcode每日一题2020/8/4]207. 课程表

课程表题目思路代码算法复杂度分析题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:00:02:00(断断续续应该在两个小时左右)题目你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]] 输出:

2020-08-04 18:51:15 66

原创 [leetcode每日一题2020/8/3]415. 字符串相加

字符串相加题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:30:00(惭愧啊,写了好久)题目给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。思路大数相加的思路。把两个字符串

2020-08-03 12:29:00 95

原创 [leetcode每日一题2020/7/31]面试题 08.03. 魔术索引

魔术索引题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:02:00(只想到了朴素解法,感觉二分解法也差不了多少)题目魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。示例1: 输入:nums = [0, 2, 3, 4, 5] 输出:0 说明: 0下标

2020-07-31 10:43:06 40

原创 [leetcode每日一题2020/7/30]343. 整数拆分

二叉树的最大深度题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:00:30:00(一时没想到,看答案了)题目给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于

2020-07-31 10:23:09 61

原创 [leetcode每日一题2020/7/29]LCP 13. 寻宝

二叉树的最大深度题目思路两点间的距离预处理数据旅行商问题代码算法复杂度分析题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难用时:00:08:00以上,构思大半天了题目我们得到了一副藏宝图,藏宝图显示,在一个迷宫中存在着未被世人发现的宝藏。迷宫是一个二维矩阵,用一个字符串数组表示。它标识了唯一的入口(用 ‘S’ 表示),和唯一的宝藏地点(用 ‘T’ 表示)。但是,宝藏被一些隐蔽的机关保护了起来。在地图上有若干个机关点(用 ‘M’ 表示),只有所有机关均被触发,才可以拿到

2020-07-30 16:05:12 115 1

原创 [leetcode每日一题2020/7/28]104. 二叉树的最大深度

二叉树的最大深度题目思路代码递归bfs复杂度分析递归bfs:题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:02:00题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。/** * Definiti

2020-07-28 11:01:47 68

原创 [leetcode每日一题2020/7/27]392. 判断子序列

判断子序列题目思路代码复杂度分析题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:20:00题目给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"

2020-07-28 10:44:20 80

原创 [leetcode每日一题2020/7/26]329. 矩阵中的最长递增路径

矩阵中的最长递增路径题目思路题目来源于leetcode,解法和思路仅代表个人观点。难度:困难用时:01:30题目给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums = [ [9,9,4], [6,6,8], [2,1,1]] 输出: 4 解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums = [ [3,4

2020-07-28 10:20:08 43

原创 简单了解makefile

简单了解makefile制作makefilemain.cmytool1.cmytool1.hmytool2.cmytool2.hMakefile简单的makefile生成中间文件的makefile测试:1. Makefile中交换main.o与mytool1.o之间的位置2. 修改makefile第一条关系makefile执行顺序的理解制作makefile如何编写makefilegcc/g++与makefilemakefile介绍如何写好一个makefilemain.c#include "

2020-05-11 21:29:04 260 1

原创 (总结)Linux利用动态开发语言访问数据库+部署到web

下面是一些安装+访问数据库+部署到web的实况,仅供参考安装MySQL8.0.20安装Java14+Tomcat9.0.34安装php7.4.5+nginx安装Golang1.14.2安装python3.8.1安装Nodejs12.16.3安装Ruby2.7.1(没有部署到web)Linux利用动态开发语言访问数据库+部署到web下载、安装动态开发语言编译(不需要编译安装就跳过...

2020-05-05 15:28:40 585

原创 Linux安装Ruby并访问数据库(失败:死于web部分)

Linux安装Ruby并访问数据库下载Ruby安装Ruby编写程序访问数据库使用 RubyGems 安装 DBIruby部署到web下载RubyRuby官网wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.1.tar.gz安装Ruby编译mv ruby-2.7.1 /usr/localcd /usr/local/ruby-...

2020-05-04 16:26:30 244

原创 Linux安装Nodejs并访问数据库+部署到web

Linux安装Nodejs并进行数据库访问下载Nodejsnodejs访问数据库nodejs部署到WebNodejs定时器PromiseError: Cannot enqueue Handshake after invoking quit.Error: Cannot enqueue Query after invoking quit.部署到nginx下载NodejsNodejs官网wget ...

2020-05-03 21:55:33 588

原创 Linux安装python并访问数据库+部署到web

Linix安装python并访问数据库下载python安装python访问mysql数据库部署到web下载pythonpython官网//利用wget下载wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgzps:下了20分钟,这下载也太慢了后记:由于yum是用python2.7写的,安装的版本太高会导致无法解释p...

2020-05-03 19:06:13 686

原创 Linux安装yum(最全依赖包)

Linux安装yum起因过程完全卸载自带的python、yum下载依赖安装依赖更新yum源起因之前安装了python3,不小心执行了标题1的卸载命令,没想到yum是用python2做的,python3解析不了python2的语法。导致yum用不了了。没办法只能重新安装。过程看了网上很多安装yum的流程,基本都对,但是总是缺少依赖。我根据另一台机子上的yum,把所有依赖找齐了。这是一个痛苦...

2020-05-03 16:52:22 789

原创 Linux安装Golang并访问数据库+部署到web

Linux安装Go下载Golang安装Golang添加环境变量第一个Go程序访问mysql数据库设置后台运行go程序部署到nginx修改nginx.conf配置文件下载Golang可以去官网看看,然后把链接复制一下,用wget下载我刚发现Go官网打不开,可以先去这里看看,然后改一下版本号。wget https://dl.google.com/go/go1.14.2.linux-amd64....

2020-05-02 21:47:44 615 2

原创 Linux安装php+nginx并访问数据库+部署到web

Linux安装php+nginx下载php安装php安装依赖包编译php安装nginx编译nginx修改nginx配置测试访问php编写php访问mysql数据库下载php这里下载的是php7.4.5,需要其他版本的可以去php官网#利用wgetwget https://www.php.net/distributions/php-7.4.5.tar.gz安装php安装依赖包yum ...

2020-05-01 22:30:07 501 2

原创 Liunx安装java+tomcat并访问数据库+部署到web

Linux安装JDK下载、安装jdk如何编译java1.编译2.运行在MySQL中创建数据库和表创建数据库book_library创建表book下载、安装jdkyum自动安装,配置jdk,很舒服yum install -y java-latest-openjdk-devel如何编译java目录结构如下1.编译在java-s目录下javac -d xxx/bin xxx/src/...

2020-05-01 18:52:56 645

原创 Linux安装mysql8.0(踩坑实况)

Linux安装mysql下载mysql8.0查看linux是32/64位安装MySQL移动并重命名创建mysql用户组和用户并修改权限创建数据目录并赋予权限配置/etc/my.cnf初始化数据库启动MySQLmysql启动失败启动mariadb-server失败一些问题secureCRT长时间连接系统环境:CentOS Linux release 7.3.1611下载mysql8.0可以...

2020-04-30 13:45:13 798

原创 Linux实验6(定时器crontab、邮件mail)

Linux实验6 1 #!/bin/bash 2 echo "please,input a number:" 3 read n 4 for((i=0;i<$n;i++)); 5 do 6 for((j=n-i;j>0;j--)); 7 do 8 echo -n "$j " 9 ...

2020-04-28 17:43:37 831 1

原创 Linux实验5(初学shell编程)

Linux实验51. 设计如下一个菜单驱动程序,保存为: menu.sh2. 编写一段bash shell程序,保存为:score.sh3. 编写一段bash shell程序,保存为file.sh一些问题代码copy操作vim里的文本替换vim里搜索之后取消高亮shell里面的if语句vim里怎么把'['替换为'[ '查看文件类型Linux cut命令shell里面的自定义变量1. 设计如下一个...

2020-04-27 22:25:00 659

yum-deps.tar

安装yum所需的rpm依赖包。我从另一台已经安装yum的机子上,把安装yum所需要的依赖包都放在里面了,亲测有效。下载完后,解压。rpm -ivh *.rpm --nodeps --force

2020-05-03

空空如也

空空如也

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

TA关注的人 TA的粉丝

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