自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 Leetcode DP系列:最长公共子序列

DP的定义状态转移方程比较当前串的最后一个字符,相等则LCS+1也就是dp[i] = dp[i-1][j-1] + 1;否则,在之前各自上个dp中选最大的dp[i] = Max(dp[i-1][j],dp[i][j-1])初始条件dp[0][j]和dp[i][0]都为0,符合数组初始化条件,所以不用管它。第一次写的时候错误循环中的i ,j...

2020-04-13 23:50:03 170

原创 Leetcode Top 100:最长上升子序列

法一:明显动态规划法二:贪心加二分查找tail[i]代表长度为i+1的上升序列最小的末尾记住,这个代码只保证末尾最小,也就是长度最长最终数组不是最优结果,只求长度如果找不到,也就是新数大于tail,则最后循环退出为rightres是最长的个数这里有个tr...

2020-03-15 22:43:07 317

原创 LeetCode Top100 合并二叉树

递归解法:// 不修改原二叉树做法class Solution { public TreeNode mergeTrees(TreeNode t1, TreeNode t2) { if(t1 == null || t2 == null) return t1 == null ? t2 : t1; // 不修改原...

2020-03-14 23:42:05 176

原创 Leetcode Top 100 最短无序子数组

比较难数组类的左右扫描法,须记住思路:同时从前往后和从后往前遍历,分别得到排序数组的右边界和左边界;寻找右边界:从前往后遍历的过程中,用max记录遍历过的最大值,如果max大于当前的nums[i],说明nums[i]的位置不正确,应该属于需要排序的数组,因此将右边界更新为i,然后更新max;这样最终可以找到需要排序的数组的右边界,右边界之后的元素都大于max;寻找左...

2020-03-12 19:03:29 213

原创 LeetCode Top100:回文串 & 整数反转

解法一:int转string然后双指针注:一、String转int有两种方式(1)Integer.parseInt(str)二、int转String有三种方式(1)num + “”(2)String.valueOf(num)(3)Integer.toString(num)(2)Integer.valueOf(str).intValue()class ...

2020-03-11 22:48:40 174

原创 Leetcode Top 100:合并两个有序链表

主要注意定义的两个辅助变量/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public List...

2020-03-11 21:39:22 149

原创 每日一题:LeetCode1013 将数组分为相等的一部分

class Solution { public boolean canThreePartsEqualSum(int[] A) { int sum = 0; //int sum = Arrays.stream(A).sum() for(int i : A) sum += i; if(sum % 3 != 0) ...

2020-03-11 19:25:31 126

原创 二叉树系列:二叉树的直径

这个题主要是思路要转换成先求二叉树的左右子树的最大深度,定义叶子节点深度为1,则在每次递归过程中更新最大直径最大直径即为某个节点的左子树最大深度+右子树最大深度。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; *...

2020-03-10 18:51:27 324

原创 LeetCode Top100 : 两数相加

leetcode 2将当前结点初始化为返回列表的哑结点。将进位 carrycarry 初始化为 0。将 p和 q分别初始化为列表 l1和 l2的头部。遍历列表 l1l1 和 l2l2 直至到达它们的尾端。将 x设为结点 p的值。如果 p已经到达 l1的末尾,则将其值设置为 0。将 y设为结点 q的值。如果 q已经到达 l2的末尾,则将其值设置为 0。设定 sum =...

2020-03-03 17:30:36 133

原创 LeetCode Top100系列(11):下一个排列

参考文章:https://mp.weixin.qq.com/s/uKyB1FWXtviWd5zgcxS4yQ 首先,我们观察到对于任何给定序列的降序,没有可能的下一个更大的排列。 例如,以下数组不可能有下一个排列: [9, 5, 4, 3, 1]此题的目的是求一组元素可以组成的所有数字中比这组元素组成的数字下一大的一组序列...

2020-03-03 15:50:46 158

原创 剑指Offer(6):两个栈实现队列

class CQueue { Stack<Integer> s1 ; Stack<Integer> s2 ; public CQueue() { s1 = new Stack<>(); s2 = new Stack<>(); } public void appendTail(int...

2020-02-29 01:33:23 104

原创 剑指Offer(5):从头到尾打印链表

栈/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ import java.util.*;class Solution { pu...

2020-02-29 00:56:02 133

原创 剑指Offer(4):重建二叉树

题目链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/此题关键点在于找到前序0号元(根节点)在中序中的下标,借此将中序分为左子树和右子树,再遍历。可以for循环+break每次从头找,要注意Array.copy系列API的用法,左开右闭或者用hashmap存中序/** * Definition for ...

2020-02-28 22:11:56 122

原创 剑指offer(3):替换字符

题目:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/class Solution { public String replaceSpace(String s) { int count = 0; //字符串不能遍历,字符数组才行 for(char c : s.toCharArr...

2020-02-21 22:20:34 103

原创 剑指offer:二维数组中的查找

题目:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/和右上角去比,不匹配然后砍掉一列或者一行注意是个while循环class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { ...

2020-02-21 18:22:25 122

原创 剑指offer(1):数组中重复的数字

题目描述:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/这种题两种做法,占坑法和哈希法,时间复杂度都为O(n),空间复杂度前者为O(1),后者为O(n)下面代码为不考数字虑越界情况,若考虑有非法数字,单独遍历一次判断,不能放到主循环里。占坑法:需要不停交换特定两个数,注意,java里的交换...

2020-02-21 16:20:46 97

原创 Linux性能优化实战(一):平均负载

一、什么是平均负载正确定义:单位时间内,系统中处于可运行状态和不可中断状态的平均进程数。错误定义:单位时间内的cpu使用率。可运行状态的进程:正在使用cpu或者正在等待cpu的进程,即ps aux命令下STAT处于R状态的进程不可中断状态的进程:处于内核态关键流程中的进程,且不可被打断,如等待硬件设备IO响应,ps命令D状态的进程理想状态:每个cpu上都有一个活跃进程,即平均负载数等于c...

2019-12-02 19:21:38 123

原创 [链表]找出两个链表第一个公共节点

标签:链表,hash题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解题思路一种方法是用 hashmap来存储和查找节点;另一种方法是双指针法。注意复习HashSet和HashMap的插入查询等用法!另一种就是著名的快慢指针法。在牛客网上找了个好理解的解释:第一步,找环中相汇点。分别用p1,p2指向链表头部,p1每次走一步,p2每次走二...

2019-05-29 22:37:34 246

原创 [链表]合并两个有序链表

标签:链表题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路两种解法:递归和非递归递归:注意递归终止条件,还有递归方向,其实很好想,不要钻牛角尖非递归解法第一个是我自己写的,很冗余,第二个是别人精简的代码,忘借鉴我一开始的思路是,分list1 < list2和list1 >= list2,但又考虑到可能list1...

2019-05-22 17:43:27 181

原创 [数组]把数组排成最小的数

标签:数组,字符串,排序题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路第一想法是将整数数组是我数都化为字符串,然后对首字母排序,关于两个字符串的默认排序,参见这篇文章Java中两个字符串如何比较大小,总结下就是先比较首字母ascll码,不等的话...

2019-05-21 22:06:10 205

原创 网络协议优秀文章记录

HTTP协议”天龙八步“细说浏览器输入URL后发生了什么当你输入一个网址的时候,实际会发生什么?老生常谈-从输入url到页面展示到底发生了什么在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)输入一个网址后发生了什么浅谈HTTP协议HTTP协议详解Get和Post的区别TCP/IP协议图解TCP-IP协议TCP的三次握手与四次挥手(详解+动图)URL...

2019-05-21 18:40:55 201

原创 [数组]从外向里打印矩阵

标签:数组题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解题思路先得到矩阵的行和列数,然后依次旋转打印数据,一次旋转打印结束后,往对角分别前进和后退一个单位。要注意单行...

2019-05-21 17:36:26 341

原创 [数组]二维数组中的查找

标签:数组题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数解题思路二维数组是有序的,从右上角来看,向左数字递减,向下数字递增。因此从右上角开始查找,当要查找数字比右上角数字大时,下移;当要查找数字比右上角数字小时,左移;如果出了边界,...

2019-05-21 17:35:04 150

原创 [链表]从后向前打印链表

标签:链表题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解题思路1、一种方法是利用栈来实现,注意Stack的用法;2、另外一种方法是利用三个指针把链表反转,关键是要用一个temp 指针保存断开的节点。另外第一个节点的next最后要断开。需要记的模板链表反转 ListNode head = Node; ListNode cur = Node.n...

2019-05-21 17:32:57 471

原创 [字符串]替换空格

标签:字符串,数组题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路两种写法,一种是用Stringbuffer,只需遍历一次,但返回时要复制一份字符串;另一种是用字符数组,缺点是要遍历两次。参考代码1、Stringbuffer注意Stringbuffer的用法...

2019-05-21 17:28:11 201

原创 [数组] 调整数组奇数偶数顺序

标签:数组题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路法一:最简单的方法就是把奇数和偶数按顺序挑出来,分别放到两个list里,最后再把偶数的list接到奇数list的末尾。法二:若空间复杂度限制为O(1),用类冒泡排序法参考代码最简单的方...

2019-05-21 17:24:58 362

原创 [动态规划]最大连续子数组

标签:动态规划,数组题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他...

2019-05-21 17:18:54 817

原创 [堆]找出最小的k个数

标签:堆,数组,集合题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。解题思路两种方法:法1:先对数组排序,然后取出前k个法2:利用最大堆保存这k个数,每次只和堆顶比,如果比堆顶小,删除堆顶,新数入堆。实现第二个用堆的方法注意点判空优先队列实现堆需要额外注意:大顶堆还是小顶堆 :堆是一种非...

2019-05-21 17:17:15 409

原创 [栈和队列]滑动窗口的最大值

标签:队列,堆,集合题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,...

2019-05-21 17:11:42 185

原创 头条后台开发一面凉经。。(基础要背诵)

头条后台开发一面1、浏览器输入网址后发什么balabala。。。感觉很简单,然后。。2、你说到了DNS解析,你等下,我这里给你一个URL,你讲下是怎么解析成IP的比如(发了一段url过来,大概是这样的):https://mail.163.com/js6/main.jsp?sid=EBiZNuQyzTPcZQfNDcyyBjxdXjHMOjdc&df=mail163_l...

2019-05-20 20:16:22 914

原创 Datawhale 编程第五期 Day6--图

第六个任务(2天)图实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法实现图的深度优先搜索、广度优先搜索 实现 Dijkstra 算法、A* 算法实现拓扑排序的 Kahn 算法、DFS 算法对应的 LeetCode练习题 Number of Islands(岛屿的个数) 英文版:Loading... 中文版:力扣Valid Sudoku(有效的数独) 英文版:...

2019-03-13 21:43:15 137

原创 Datawale编程Day5--二叉树

第五个任务(3天)二叉树实现一个二叉查找树,并且支持插入、删除、查找操作实现查找二叉查找树中某个节点的后继、前驱节点实现二叉树前、中、后序以及按层遍历并完成leetcode上的验证二叉搜索树(98)及二叉树 层次遍历(102,107)!(选做)(保留往期第四天任务)注:这个跟下面的习题有重复堆实现一个小顶堆、大顶堆、优先级队列 实现堆排序利用优先级队列合并 K 个有...

2019-03-11 20:31:46 248

原创 Datawhale 编程第五期 Day4--Hash

LeetCode.344.Reverse Stringpublic class Solution { public String reverseString(String s) { char[] word = s.toCharArray(); int i = 0; int j = s.length() - 1; whi...

2019-03-08 21:54:33 193

原创 DataWhale MySQL 第五期任务五——实战二

2019-03-04 22:38:20 147

原创 Datawhale 编程第五期 Day2--栈和队列

package Day2;import java.util.Stack;public class Stack_020 { /** * * @param s * @return */ public boolean isValid(String s) { Stack&lt;Character&gt; stack = new...

2019-03-03 22:52:11 110

原创 DataWhale MySQL 第五期任务五——实战一

参考https://blog.csdn.net/Todd_168/article/details/88083422https://www.zxpblog.cn/2019/03/03/Excel%E6%96%87%E4%BB%B6%E5%AF%BC%E5%85%A5%E5%AF%BC%E5%87%BA%E5%92%8C%E7%BB%83%E4%B9%A0%E9%A2%98/#more...

2019-03-03 21:53:51 274

原创 DataWhale MySQL 第五期任务四——表连接

1.表的简化命名和字段的简化命名2.inner join left join right join的用法作业

2019-03-02 22:02:27 169

原创 DataWhale MySQL 第五期任务三——表操作

1.表数据类型出于时间,一些概念就不再写了,表操作参见博客https://blog.csdn.net/l75326747/article/details/88051085下面是练习题

2019-03-01 21:52:49 193

原创 Datawhale 编程第五期 Day1--数组与链表

1.数组题目1 leetcode 15.Three Sum 参见:https://leetcode-cn.com/problems/3sum/comments/思路:可暴力搜索,三个循环,但时间复杂度是O(n^3),而且不好去重,这里思路是先排序,然后在化为两数之和,且有一些排重加快搜索速度的小技巧,整体复杂度为O(n^2)。package Day1;import java.u...

2019-02-28 21:52:49 229

原创 DataWhale MySQL 第五期任务二——基础查询

学习内容1.导入数据库,按网上教程https://jingyan.baidu.com/article/a17d5285c164cc8098c8f23e.html,前提是已经连上本地MySQL,就是下面图片中的Dan,是点击连接图标自动连接的那个,也可以从cmd导入,不用Navicat图形化界面。新建查询2.SQL是什么,MySQL是什么?sql: 结构化查询语言mysq...

2019-02-28 15:16:23 283

空空如也

空空如也

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

TA关注的人

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