- 博客(174)
- 收藏
- 关注
原创 【swap】占用较多的进程查看
在日常管理中,我们经常会遇到swap分区使用比较多,那么导致是那些进程使用的呢,其实我们可以通过/proc/pid/下的smaps来获得。在日常管理中,我们经常会遇到swap分区使用比较多,那么导致是那些进程使用的呢,其实我们可以通过/proc/pid/下的smaps来获得。获取到占用swap分区比较多的PID,然后就可以通过PID获取到进程的相关信息了。获取到占用swap分区比较多的PID,然后就可以通过PID获取到进程的相关信息了。Linux如何查看哪个进程占用的SWAP分区比较多?
2023-11-24 18:12:28 1026
原创 lc_other_20_括号isValid
/*题目:有效的括号 simple给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5...
2020-08-31 11:38:26 215
原创 lc_dbp_19_removeNthFromEnd
/*题目:删除链表的倒数第N个节点 middle给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路: 一次遍历:双指针。 需找到倒数n个节点的前一个节点target。 当快指针到尾部,慢指针应该在...
2020-08-31 10:55:07 258
原创 JDK1.8的hash函数与桶位置的计算
所需知识:位操作<< : 左移运算符,num << 1,相当于num乘以2 低位补0>> : 右移运算符,num >> 1,相当于num除以2 正数高位补0,负数高位补1>>> : 无符号右移,忽略符号位,空位都以0补齐 % : 模运算 取余^ : 位异或 第一个操作数的的第n位于第二个操作数的第n位相反,那么结果的第n为也为1,否则为0 & : 与运算 第一个操作数的的第n位于第二个操作数的第n位如果都是1.
2020-08-29 00:32:47 595
原创 lc_dbp_18_fourSum
/*题目:四数之和给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2...
2020-08-23 12:29:12 273
原创 lc_dfs_17_letterCombinations
/*题目:电话号码的字母组合 middle给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序思路:dfs*/package leetCode.Other;import...
2020-08-15 17:41:41 153
原创 lc_other_4_findMedianSortedArrays
/*题目:寻找两个正序数组的中位数 hard(其实也没有很难)给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5思路
2020-08-15 13:10:42 176
原创 lc_dbp_16_threeSumClosest
/*题目:最接近的三数之和 middle给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示: 3 <= nums.length <= 10^3 -...
2020-08-10 18:00:47 160
原创 lc_dbp_15_threeSum
/*题目: 三数之和 middle给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]思路:dfs或者3层for循环会超时排序+双指针1)排序后,遍历每个nums元...
2020-08-10 11:35:35 163
原创 lc_string_65_isNumber
/*题目:有效数字 hard(其实投机取巧的话不是很难)验证给定的字符串是否可以解释为十进制数字。例如:"0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => true" -90e3 " => true" 1e" => false"e3" => false" 6e-1" => true" 99e2.5 " => false"53.5e93" =..
2020-08-09 19:58:47 217
原创 lc_other_14_longestCommonPrefix
/*题目:最长公共前缀 simple编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。思路:1)每条字符串对应index比较,不相等时直接返回已相等的部分:本题采用2)字符串两两比较,先得到str1和str2的公共前缀ans,再得到ans和str3.
2020-08-08 11:46:22 150
原创 lc_other_13_romanToInt
题目: 罗马数字转整数 simple罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如: 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。27 写做 X...
2020-08-08 11:08:50 183
原创 lc_other_12_intToRoman
题目:整数转罗马数字 middle罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如: 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做...
2020-08-07 18:33:29 180
原创 lc_other_11_maxArea
/*题目:盛最多水的容器 middle给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。输入:[1,8,6,2,5,4,8,3,7]输出:49 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。 在此情况下,容器能够容...
2020-08-07 13:02:12 121
原创 lc_other_9_isPalindrome
题目:回文数 simple判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?package leetCo..
2020-08-06 22:29:21 114
原创 lc_other_8_myAtoi
题目:字符串转换整数 (atoi) middle请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下: 1.如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来, 形成一个有符号整数。 2.假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。 3.该字符串在有效的整数部分之后也可能会存在多余的字符,那...
2020-08-06 21:26:16 133
原创 finally和return对变量的影响
结论: 当finally中没有return,但是try中有return时1)当finally调用的任何可变API,会修改返回值;2)当finally调用任何的不可变API,对返回值没有影响。 当finally中有return,直接返回finally中的变量,不返回try中的变量可变API:如 对象,StringBuilder 这样的内部对象可变的API, 不可变可变API:如基本类型int,包装类型Integer,String类型 String底层的数..
2020-07-30 08:59:48 338
原创 【2020.7.27】mysql创建用户时提示“Lost connection to MySQL server during query”
MySQL错误日志 Missing system table mysql.proxies_priv;mysql创建用户时一直提示“Lost connection to MySQL server during query”,打开日志发现如上的error。解决方法:mysql_upgrade -u root -p输入密码更新成功即可解决...
2020-07-27 23:38:39 247
原创 关于HashMap和ConcurrenHashMap的知识总结
HashMap在jdk1.7和1.8中的区别 HashMap中的resize以及jdk1.7中死链的情况 JDK1.7的ConcurrentHashMap 的put、get、remove工作原理 JDK1.8的ConcurrentHashMap 的put、get 工作原理
2020-07-23 17:13:52 233
原创 为什么int的最小值绝对值比最大值大1
转载自:https://www.cnblogs.com/zhengxq21/p/10348336.html关于int取值范围的疑问在Java中int是占4个字节的,意味着它是32位。同时int是有符号的,那就说它最高位不计算在内,可以得出MAX_INT = 01111111111111111111111111111111 恰好等于 2^31 -1说法1:MAX_INT + 1 = 100000000000000000000 根据int有符号的定义,第一位是符号位,这样看来,这个数值就是 -0 ;
2020-07-23 11:50:28 1012 1
原创 lc_other_7_reverseInt
题目:整数反转 simple给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路:注意:不能使用long来存储计算结果,题目已有要求32位溢出条件有两个,一个是大于整.
2020-07-16 11:45:08 150
原创 lc_String_6_convert
题目:Z 字形变换 middle将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。package leetCode.String;import java.util.ArrayList;import java.util.List;public class lc_String_6_convert {/*题目:Z 字形变换 middle将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "LEETCODEISHIRING" 行.
2020-07-14 11:28:37 96
原创 lc_linkedList_1_addTwoNumbers
/*题目:两数相加 middle给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807*//*思路:1)将短的补0和
2020-07-12 22:50:46 110
原创 lc_other_1_twoSum
/*题目:两数之和 simple给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]*//*思路:采用hashMap进行优化,空间换时间,O(n)*/packa.
2020-07-12 21:51:44 132
原创 MinSubstring
【题目】 给定字符串str1和str2,求str1的子串中含有str2所有字符的最小子串长度。 输出str1的字串中含有str2所有字符的最小字符串长度,如果不存在请输出0。【举例】 str1 = “aabcde”, str2 = “ca”。返回3.str1 = “12345”, str2 = “344”。返回0./*思路: 主要思想是:采用两个指针(1)如果两指针之间不完全包含所有元素,后面的指针后移;(2)如果包含了所有元素,则更新最短子串长度,并记...
2020-07-11 10:05:23 358
原创 lc_bfs_542_updateMatrix
题目:01 矩阵 middle给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意: 给定矩阵的元素个数不超过 10000。 给定矩阵中至少有一个元素是 0。 矩阵中的元素只在四个方向上相邻: 上、下、左、右。...
2020-07-09 12:43:21 325 1
原创 lc_bfs_529_updateBoard
题目:扫雷游戏 middle让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 'M' 代表一个未挖出的地雷,'E' 代表一个未挖出的空方块,'B' 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已挖出的方块相邻,'X' 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中('M'或者'E')的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板:*如果一个地雷('M')被挖出,游戏就.
2020-07-06 18:40:57 109
原创 lc_bfs_515_largestValues
题目:在每个树行中找最大值 middle您需要在二叉树的每一行中找到最大的值。示例:输入: 1 / \ 3 2 / \ \ 5 3 9输出: [1, 3, 9]思路:经典bfs,只需再每层遍历时比较找出每层的最大值package leetCode.BFS;import java.util.ArrayDeque;import java.util.ArrayList;imp...
2020-07-06 09:13:14 96
原创 lc_bfs_513_findBottomLeftValue
题目:找树左下角的值 middle给定一个二叉树,在树的最后一行找到最左边的值。示例 1:输入: 2 / \ 1 3输出:1示例 2:输入: 1 / \ 2 3 / / \ 4 5 6 / 7输出:7注意: 您可以假设树(即给定的根节点)不为 NULL。思路:经典的bfs,只需要记录每层的第一个结点值即可package leetC...
2020-07-06 08:36:50 170
原创 lc_bfs_429_levelOrder
/*题目:N叉树的层序遍历 middle给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。例如,给定一个 3叉树 :返回其层序遍历:[ [1], [3,2,4], [5,6]]*//*思路:经典的bfs,不再赘述*/package leetCode.BFS;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.L...
2020-07-06 08:23:36 101
原创 lc_bfs_417_pacificAtlantic
/*题目:太平洋大西洋水流问题 middle给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。规定水流只能按照上、下、左、右四个方向流动,且只能从高到低或者在同等高度上流动。请找出那些水流既可以流动到“太平洋”,又能流动到“大西洋”的陆地单元的坐标。提示: 输出坐标的顺序不重要 m 和 n 都小于150示例:给定下面的 5x5 矩阵: 太平洋 ~ ~ ~ ~...
2020-07-05 22:39:51 129
原创 lc_bfs_210_findOrder
/*题目: 课程表 II middle现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2, [[1,0]]输出: [0,1]解释: 总共有 2 门课程。要学习课程 1,你需要先完成
2020-07-05 15:33:07 139
原创 lc_bfs_207_canFinish
题目:课程表 middle你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1],给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,
2020-07-05 10:45:19 119
原创 lc_bfs_200_numIslands
题目:岛屿数量 middle给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:[['1','1','1','1','0'],['1','1','0','1','0'],['1','1','0','0','0'],['0','0','0','0','0']]输出: 1示例 2:输入:[['1','1.
2020-07-04 22:44:17 110
原创 lc_bfs_199_rightSideView
题目:二叉树的右视图 middle给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。package leetCode.BFS;import java.util.ArrayDeque;import java.util.LinkedList;import java.util.List;public class lc_bfs_199_rightSideView {/*题目:二叉树的右视图 middle给定一棵二叉树,想象自己站在它的右侧,按.
2020-07-04 11:12:21 141
原创 lc_bfs_133_cloneGraph
/*题目:克隆图 middle给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中...
2020-07-03 23:45:32 102
原创 lc_bfs_126_findLadders
题目:单词接龙 II hard给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: 每次转换只能改变一个字母。 转换后得到的单词必须是字典中的单词。说明: 如果不存在这样的转换序列,返回一个空列表。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWo...
2020-07-03 16:23:22 113
原创 lc_bfs_127_ladderLength
题目:单词接龙给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: 1.每次转换只能改变一个字母。 2.转换过程中的中间单词必须是字典中的单词。说明: 如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWord 是非空的,且二者不相同...
2020-07-03 09:17:53 164
原创 JDK1.8的ConcurrentHashMap 的put、get 工作原理
JDK1.8的ConcurrentHashMapput总结:如果没有初始化就先调用initTable()方法来进行初始化过程 如果没有hash冲突就直接CAS插入 如果还在进行扩容操作就先进行扩容 如果存在hash冲突,就加锁来保证线程安全,这里有两种情况,一种是链表形式就直接遍历到尾端插入,一种是红黑树就按照红黑树结构插入, 如果Hash冲突时会形成Node链表,在链表长度超过8,Node数组超过64时会将链表结构转换为红黑树的结构,break再一次进入循环 如果添加成功就调用addCo
2020-07-02 12:05:13 1743 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人