自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Python正则表达式语法总结】

Python正则表达式

2023-07-28 11:01:47 133

原创 Neo4j导入CSV文件(实体和关系)

Neo4j导入CSV文件(实体和关系)

2023-02-28 15:46:37 2264

原创 Python的EEMD实现

EEMD

2022-11-04 14:20:26 2242

原创 位运算 - 统计从 0 ~ n 每个数的二进制表示中 1 的个数

1.题目LeetCode;338. 比特位计数【medium】2.解题方法一:动态规划参考:https://leetcode-cn.com/problems/counting-bits/solution/bi-te-wei-ji-shu-by-leetcode-solution-0t1i/java:class Solution { public int[] countBits(int num) { int[] res = new int[num + 1];

2021-04-06 20:20:30 240

原创 位运算 - 字符串数组最大乘积

1.题目LeetCode: 318. 最大单词长度乘积【medium】2.解题方法一:首先将字符串数组转成整数数组,然后找出符合要求的两个字符串,即他们的与的结果为0,然后找出乘积最大的即可。java:class Solution { public int maxProduct(String[] words) { int res = 0; int[] nums = new int[words.length]; for (int i = 0

2021-04-06 20:19:24 230

原创 位运算 - 实现整数的加法

1.题目LeetCode: 371. 两整数之和【medium】2.解题方法一:递归法a ^ b求得两个数的和, (a & b) << 1求得进位,和与进位不断求和,直至进位为0停止。java:class Solution { public int getSum(int a, int b) { return b == 0 ? a : getSum((a ^ b), (a & b) << 1); }}...

2021-04-06 20:18:08 91

原创 位运算 - 求一个数的补码

1.题目LeetCode:476. 数字的补数【easy】2.解题方法一:掩码异或由题可知补数是原数二进制的取反,所以比如5的二进制是0101,与0111进行异或操作结果是0010.因此我们求得掩码即可java:class Solution { public int findComplement(int num) { int mask = 1; mask <<= 30; while ((num & mask) == 0

2021-04-06 20:14:54 365

原创 位运算 - 判断一个数的位级表示是否不会出现连续的 0 和 1

1.题目LeetCode:693. 交替位二进制数【easy】2.解题方法一:逐位判断首先判断n是偶数还是奇数,从而确定n最后一位是0还是1,然后从后往前逐位判断是否是1和0交替。java:class Solution { public boolean hasAlternatingBits(int n) { int f = 0; if ((n % 2) == 1) f = 1; while (n > 0) {

2021-04-06 20:13:33 238

原创 位运算 - 判断一个数是不是 4 的 n 次方

1.题目LeetCode: 342. 4的幂【easy】2.解题方法一:递归法java:class Solution { public boolean isPowerOfFour(int n) { if (n == 1) return true; return n > 0 && isPowerOfFour(n / 4) && (n % 4) == 0; }}方法二:位运算java:class Solu

2021-04-06 20:12:27 219

原创 位运算 - 判断一个数是不是 2 的 n 次方

题目LeetCode:231. 2的幂【easy】2.解题方法一:递归法java:class Solution { public boolean isPowerOfTwo(int n) { if (n == 1) return true; return n > 1 && isPowerOfTwo(n / 2) && (n % 2) != 1; }}方法二:计数对于一个数的二进制表示,如果这个数是2的幂,

2021-04-06 20:11:04 315

原创 位运算 - 翻转一个数的比特位

1.题目LeetCode: 190. 颠倒二进制位【easy】2.解题方法一:java:public class Solution { // you need treat n as an unsigned value public int reverseBits(int n) { int res = 0; for (int i = 0; i < 32; i++) { res <<= 1;

2021-04-06 20:09:23 467

原创 位运算 - 数组中不重复的两个元素

1.题目LeetCode: 260. 只出现一次的数字 III【medium】2.解题*方法一:位运算 - 异或两个不相等的元素在位级表示上必定会有一位存在不同。将数组的所有元素异或得到的结果为不存在重复的两个元素异或的结果。diff &= -diff 得到出 diff 最右侧不为 0 的位,也就是不存在重复的两个元素在位级表示上最右侧不同的那一位,利用这一位就可以将两个元素区分开来。换句话说,通过diff &= -diff 得到出 diff 最右侧不为 0 的位,通过这一

2021-04-06 20:08:20 289

原创 用UltraISO制作CentOS的DVD光盘启动盘 安装系统

1.制作启动盘下载UltraISOhttps://cn.ultraiso.net/uiso9_cn.exe按步骤安装成功后打开光盘的选择光盘一般分为CD和DVD,至于他们的区别已经有大佬总结好了:https://blog.csdn.net/lisenyang/article/details/392276418G的DVD+R的光盘千万千万不能用来制作系统盘,尝试很多次都是失败,各种刻录软件都试过无一成功。最后只能选择DVD-R 4.7G 的光盘,但是却装不下CentOS7系统,也不知道为什么,最

2021-03-30 20:50:29 5315

原创 位运算 - 找出数组中缺失的那个数

1.题目LeetCode: 268. 丢失的数字【easy】2.解题方法一:异或分析题意,长为n的数组包含0到n的n个数,将所有数与数组下标进行异或操作,剩下的结果是多余的数组下标,即丢失的元素。java:class Solution { public int missingNumber(int[] nums) { int res = 0; for (int i = 0; i < nums.length; i++) { re

2021-03-30 20:24:47 480

原创 位运算 - 数组中唯一一个不重复的元素

1.题目LeetCode:136. 只出现一次的数字【easy】2.解题方法一:异或两个相同的数异或为0,0与任何数异或为任何数,所以我们可以对所有数进行异或操作,相同的数会抵消掉,最后剩下的便是我们要的结果。java:class Solution { public int singleNumber(int[] nums) { int res = 0; for (int i = 0; i < nums.length; i++) {

2021-03-30 20:23:54 368

原创 位运算 - 统计两个数的二进制表示有多少位不同

1.题目LeetCode;461. 汉明距离【easy】2.解题方法一:Integer.bitCount()两个数进行异或操作,便可得到不同的位置的数目,然后直接使用java中计算二进制数的1的个数。java:class Solution { public int hammingDistance(int x, int y) { return Integer.bitCount(x ^ y); }}方法二:计数法异或之后计数,但超出时间限制。public

2021-03-30 20:22:28 212

原创 图 - 并查集 - 冗余连接

1.题目LeetCode: 684. 冗余连接【medium】2.解题方法一:并查集参考:https://leetcode-cn.com/problems/redundant-connection/solution/rong-yu-lian-jie-by-leetcode-solution-pks2/java:class Solution { public int[] findRedundantConnection(int[][] edges) { int cou

2021-03-30 20:21:21 85

原创 图 - 拓扑排序 - 课程安排的合法性

1.题目LeetCode: 207. 课程表【medium】2.解题方法一:DFS参考:https://leetcode-cn.com/problems/course-schedule/solution/ke-cheng-biao-by-leetcode-solution/java:class Solution { List<List<Integer>> edges; int[] visited; boolean valid = true;

2021-03-30 20:19:28 115

原创 图 - 二分图 - 判断是否为二分图

1.题目LeetCode: 785. 判断二分图【medium】2.解题方法一:DFS根据题意,图中任意两个相连的节点必定属于不同的集合。我们可以通过染色的方式进行解答,从任意一个节点开始,将其染成红色(0),然后将他相连的其他节点都染成绿色(1),然后遍历下一个节点,如果是绿色就将其相连的节点染成红色,否则染成绿色,以此类推,直到遍历完所有节点,如果产生冲突即本该染红色的节点已经被染成了绿色,则直接返回false,不符合二分图,反之亦然。算法的流程如下:我们任选一个节点开始,将其染成红色,

2021-03-30 20:18:22 349

原创 数组与矩阵 - 分隔数组

1.题目LeetCode: 769. 最多能完成排序的块【medium】数组arr是[0, 1, …, arr.length - 1]的一种排列,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。我们最多能将数组分成多少块?示例 1:输入: arr = [4,3,2,1,0]输出: 1解释:将数组分成2块或者更多块,都无法得到所需的结果。例如,分成 [4, 3], [2, 1, 0] 的结果是 [3, 4, 0, 1, 2]

2021-03-30 20:17:18 108

原创 数组与矩阵 - 嵌套数组

1.题目LeetCode: 565. 数组嵌套【medium】索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], … }且遵守以下的规则。假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]… 以此类推,不断添加直到S出现重复的元素。示例 1:输入: A = [5,4,0,3,1,6,2]输出: 4解释:A[

2021-03-28 19:56:08 202

原创 数组与矩阵 - 对角元素相等的矩阵

1.题目LeetCode: 766. 托普利茨矩阵【easy】给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。示例 1:输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]输出:true解释:在上述矩阵中, 其对角线为:“[9]”, “[5, 5]”, “[1, 1, 1]”, “[2, 2, 2]”

2021-03-28 19:54:33 3018

原创 数组与矩阵 - 数组的度

1.题目LeetCode: 697. 数组的度【easy】给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入:[1, 2, 2, 3, 1]输出:2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, 2, 2, 3]

2021-03-28 19:53:14 132

原创 数组与矩阵 - 数组相邻差值的个数

1.题目LeetCode: 667. 优美的排列 II【medium】给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件:① 如果这个数组是 [a1, a2, a3, … , an] ,那么数组 [|a1 - a2|, |a2 - a3|, |a3 - a4|, … , |an-1 - an|] 中应该有且仅有 k 个不同整数;.② 如果存在多种答案,你只需实现并返回其中任意一种.示例 1:输入: n = 3, k = 1输出: [

2021-03-28 19:52:12 232

原创 数组与矩阵 - 找出数组中重复的数,数组值在 [1, n] 之间

1.题目LeetCode: 287. 寻找重复数【medium】给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。示例 1:输入:nums = [1,3,4,2,2]输出:2示例 2:输入:nums = [3,1,3,4,2]输出:3示例 3:输入:nums = [1,1]输出:1示例 4:输入:nums = [1,1,2]输出:1提

2021-03-28 19:50:37 330

原创 数组与矩阵 - 错误的集合

1.题目LeetCode: 645. 错误的集合【easy】集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。给定一个数组 nums 代表了集合 S 发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入:nums = [1,2,2,4]输出:[2,3]示例 2:输入:nums = [1,1]输出:[1,2]提示:2

2021-03-28 19:48:52 82

原创 数组与矩阵 - 有序矩阵的 Kth Element

1.题目LeetCode: 378. 有序矩阵中第 K 小的元素【medium】给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。示例 1:输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8输出:13解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素

2021-03-28 19:47:17 217

原创 数组与矩阵 - 找出数组中最长的连续 1

1.题目LeetCode: 485. 最大连续 1 的个数【easy】给定一个二进制数组, 计算其中最大连续 1 的个数。示例:输入:[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.提示:输入的数组只包含 0 和 1 。输入数组的长度是正整数,且不超过 10,000。2.解题方法一:一次遍历java:class Solution { public int findMaxConsecutiveOnes

2021-03-28 19:42:55 879

原创 数组与矩阵 - 改变矩阵维度

1.题目LeetCode: 566. 重塑矩阵【easy】在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入:nums =[[1,2],[3,4]]r = 1,

2021-03-28 19:35:58 259

原创 数组与矩阵 - 把数组中的 0 移到末尾

1.题目LeetCode: 283. 移动零【easy】给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。2.解题方法一:暴力法java:class Solution { public void moveZeroes(int[] nums) { int len = nums.leng

2021-03-27 08:36:52 225

原创 conda常用命令

获取版本号:conda --version获取环境列表:conda env list创建环境:conda create --name your_env_name python=3.8进入某个环境:conda activate your_env_name删除某个环境:conda remove --name your_env_name --all列举当前活跃环境下的所有包:conda list为指定环境安装某个包:conda install -n env_name package_name根据.

2021-03-26 10:01:40 115

原创 字符串 - 统计二进制字符串中连续 1 和连续 0 数量相同的子字符串个数

1.题目LeetCode: 696. 计数二进制子串【easy】给定一个字符串 s,计算具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是连续的。重复出现的子串要计算它们出现的次数。示例 1 :输入: “00110011”输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不

2021-03-26 09:52:33 2209

原创 字符串 - 回文子字符串个数

1.题目LeetCode: 647. 回文子串【medium】给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:“abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:“aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:输入的字符串长度不会超过 1000 。2.解题方法一:暴力查找每一个

2021-03-26 09:49:03 1796

原创 树 - 根据有序链表构造平衡的二叉查找树

1.题目LeetCode: 109. 有序链表转换二叉搜索树【medium】给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -1

2021-03-26 09:43:28 363

原创 字符串 - 字符串同构

1.题目LeetCode: 205. 同构字符串【easy】给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。示例 1:输入:s = “egg”, t = “add”输出:true示例 2:输入:s = “foo”, t = “bar”输出:false示例 3:

2021-03-26 09:42:22 289

原创 字符串 - 计算一组字符集合可以组成的回文字符串的最大长度

1.题目LeetCode:409. 最长回文串【easy】给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。2.解题方法一:数组因为回文数组左右的字符是一样的,所以左右的字符必定为偶数个,而中间的字符既

2021-03-26 09:39:52 912

原创 字符串 - 两个字符串包含的字符是否完全相同

1.题目LeetCode: 242. 有效的字母异位词【easy】给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?2.解题方法一:HashMap将s中所有字

2021-03-26 09:36:37 1126

原创 哈希表 - 最长连续序列

1.题目LeetCode: 128. 最长连续序列【hard】给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。进阶:你可以设计并实现时间复杂度为 O(n) 的解决方案吗?示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9提示:0<=nums.length&l

2021-03-24 10:41:01 169

原创 哈希表 - 最长和谐序列

1.题目LeetCode: 594. 最长和谐子序列【easy】和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。示例 1:输入:nums = [1,3,2,2,5,2,3,7]输出:5解释:最长的和谐子序列是 [3,2,2,2,3]示例 2:输入:nums = [1,2,3,

2021-03-24 10:29:37 178

原创 哈希表 - 判断数组是否含有重复元素

1.题目LeetCode: 217. 存在重复元素【easy】给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true2.解题方法一:HashSet遍历数组,每遍历一个元素就判断是否在哈希表中,如

2021-03-24 10:26:10 2532

空空如也

空空如也

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

TA关注的人

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