自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实现字典树

自己实现的字典树版本。带详细注释package leetcode.LC;class TrieNode{ //4个参数设置 //以该节点字符为结尾的字符串数目 int end_num; //以该节点作为前缀字符的个数 int prefix_num; //是否是叶子结点 boolean is_leaf; //每个字符都含有26个字母可选 TrieNode sub_nodes[]; public TrieNode(){.

2022-03-17 15:58:45 2403

原创 毕业论文 - 写作问题总结 和 tips

1.知网找到往届师兄姐的论文,找导师要学校的论文格式的文档,对照格式写2.在word里面设置论文的标题格式,正文格式,这样就可以方便修改格式。3.降重的方案: 常用词替换:WantWords 反向词典,在这个网站里面输入词就会找到和其相似的词语,还可以根据自己的要求使用筛选条件需要的词。使用一些AI工具来降重,会自动替换文字。神降笔火龙果写作_AI驱动的文字生产力工具4.引用文章使用交叉引用插引用最怕的问题就是突然在中间增加引用,那么之...

2022-03-17 15:48:58 658

原创 使用python-iptables库设置linux防火墙权限,只允许特定ip访问指定端口,通过web服务二次验证

背景:服务器使用frp后,贼难受被人下了挖矿病毒,痛定思痛决定给服务器加上二次验证,只允许指定ip来访问端口,避免不正常的ip来扫描我的端口。。。所以花了一天时间写个小验证程序也发布到了github:GitHub - wu8320175/python-iptables-: 使用python-iptables 做服务器指定端口访问二次验证实现的功能如下:1. 指定的端口,首先所有ip都不能访问,然后根据web服务验证的结果允许该ip来访问指定端口。2.将以上功能封装成w...

2022-01-15 21:57:56 3794

原创 ubuntu服务器 重启之后 nvidia显卡驱动无法连上并且一直黑屏

故障如下:重启之后还显示着ubuntu开机界面,随后马上黑屏。故障分析: 因为linux内核和nvidia驱动必须一一对应,而联网时,比如ubuntu会自动更新内核,下次重启时就会是新的内核版本,导致驱动和内核对应不上。解决方法1(切换内核到原来的版本):1. 首先进入tty,按住ctrl+alt+f2 切换到tty模式,这时会弹出终端输入窗口,输入登录账号和密码登录进去。参考:Ubuntu开机启动黑屏,只有鼠标 - 代码先锋网2. 设置指定内核启动,这...

2021-11-21 16:12:25 2547

原创 java实现 生产者 消费者 一对多模型

java信号量还是方便。以后写这类题直接信号量省事。。但是效率估计没有其他高import java.util.concurrent.Semaphore;public class multi_print_Producer_consumer { private static volatile int i=0; private static Semaphore lock=new Semaphore(1); public static class Producer implement

2021-09-02 15:26:47 204

原创 java 使用信号量实现任意n个线程的交替打印

思路:给每个线程配一个信号量,后一个线程等前一个释放,第一个等最后一个释放,形成循环等待链,然后手动给第一个线程释放一个信号量使得程序执行起来import java.util.concurrent.Semaphore;public class mutil_print { public static volatile int i; public static int nums; public static class TA implements Runnable{ ...

2021-09-02 15:16:59 408

原创 两个线程 交替打印0-100 synchronized、Lock、volatile

看到一个面试题交替打印0-100,本来想着应该挺简单的,复制一下看看,然后在csdn找了一些博客,尝试了好几个博客的代码,最后导致线程输出到99就卡在那,不能正常结束,居然没一个发现问题,我都服气了。csdn博客质量,抄的人都不带脑子抄,我就没发现一个正常的。假设打印0-99,交替打印使用synchronized的时候,A线程: i到99时输出,然后i+1 =100,A线程会调用wait 阻塞进入等待队列。这时B线程发现i=100了直接跳出循环了,就不会去循环里面执行notify唤醒了。导致A线程.

2021-08-13 14:43:43 384

原创 flume1.9 + hadoop3.1.3 配置hdfs sink

flume1.9 + hadoop3.1.3按照这个大佬的方法将hadoop里面的jar包复制到flume的lib下:https://blog.csdn.net/weixin_43215322/article/details/115311773# Name the components on this agenta2.sources = r2a2.sinks = k2a2.channels = c2# Describe/configure the sourcea2.sources.r2.t

2021-08-09 12:36:08 523

原创 为什么重写equals时必须重写hashCode方法?

感觉网上很多博客要么抄,要么有的写的很晦涩难懂,所以按照自己的理解写了一份。(1)两个对象相等,hashcode一定相等 (2)两个对象不等,hashcode不一定不等 (3)hashcode相等,两个对象不一定相等 (4)hashcode不等,两个对象一定不等一句话总结:两个对象在equals逻辑上是认为相同的,没重写hashcode方法导致hash值不同。按照规则1 :相同的对象应该是有相同...

2021-07-29 13:24:58 158

原创 java 手动实现算法 任意进制之间转换

题目:src字符串,给出src代表的src_base进制 要求转换成 dst_base进制函数签名:String convertNum(String src,int src_base,int dst_base)如 -12 8进制转换成2进制 convertNum("-12",8,2) 为 -1010解题思路:先将src_base进制转换成10进制,再将该10进制数转换成dst_base进制package leetcode.test;import java.util.Ha...

2021-07-21 12:39:45 234

原创 01背包和完全背包问题 解题套路小结

将背包问题最后抽象为:有一个数组 nums = [1,2,3,4,5,6.....] ,目标数 T=n.当nums里面每个数只能用一次时,代表01背包当nums里面每个数可以无线使用,代表完全背包。总结背包问题 为以下几个问题:(几乎所有同类型的题目最后都能转换为以下的几个思路)1.设 从nums里面取出一些数刚好凑成T, 这些数为1个组合。问:能从nums里面取出的组合数和等于T的有多少个?2.能否从nums里面取出一些数能凑成T.3.凑成一个最接近或等于T的数。 即从num.

2021-04-19 10:31:55 185

原创 494. 目标和

我写在LC官网的题解上了,从01背包到解题方法。https://leetcode-cn.com/problems/target-sum/solution/can-kao-01bei-bao-jie-ti-ji-qi-you-hua-s-exln/

2021-04-16 22:00:10 87

原创 01背包思路 图解 + 二维数组优化到一维数组

01背包参考:https://www.cnblogs.com/kkbill/p/12081172.html二维数组:(java)public class bag01 { public static void main(String[] args) { int v[]={1500,3000,2000};//价值 int w[]={1,4,3};//重量 int bag_size =4;//背包大小 //dp数组保存不

2021-04-16 17:12:08 318

原创 Tensorflow 2 复数操作的坑

如果是tf1版本直接tf.complex 或者 tf.real,imag之类的,在2.0版本以上操作无法使用正确做法是:该api被移动到tf.math库下面,所以操作前加上tf.math即可,如tf.math.real 或者tf.raw_ops.Realapi文档在这:https://www.tensorflow.org/api_docs/python/tf/math/imag...

2021-03-10 16:38:16 1241 1

原创 vmvare ssh连不上,windows ping不通centos,centos能ping通windows

linux能上网,能获取ip地址,ssh服务已经开启,但是windows无法连上,centos能ping通windows,但是windows ping不通centos。设备:windows10 vmvare15 centos6.8具体复现:1.找到windows cmd窗口 ipconfig命令获得ipv4地址2.linux终端能ping通windows的ip3.获取linux ip地址 输入命令 ifconfig在windows下打开cmd窗口ping这个ip,发现..

2021-02-16 23:46:34 2871 6

原创 36. 有效的数独

36. 有效的数独难度中等469判断一个9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用'.'表示。示例1:输入:[ ["5","3",".",".","7",".",".",".","."], ["6",".",".",...

2021-02-16 18:31:41 105

原创 66. 加一

66. 加一难度简单626给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digit...

2021-02-16 00:46:01 98

原创 260. 只出现一次的数字 III

260. 只出现一次的数字 III难度中等358给定一个整数数组nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按任意顺序返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?示例 1:输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。示例 2:输入:nums = [-1,0]输出:[-1,0]示例 3:输入:n...

2021-02-16 00:22:24 120

原创 350. 两个数组的交集 II

350. 两个数组的交集 II难度简单446给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。 我们可以不考虑输出结果的顺序。进阶:如果给定的数组已经排好序呢?你将如何优化你的算..

2021-02-15 23:36:34 104

原创 202. 快乐数

202. 快乐数难度简单531编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。 如果可以变为 1,那么这个数就是快乐数。如果n是快乐数就返回true;不是,则返回false。示例 1:输入:19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 ...

2021-02-15 22:53:25 198

原创 22. 括号生成

22. 括号生成难度中等1552数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8通过次数225,350提交次数293,515思路是:采用类二叉树回溯法(lc39,40,78等),选括号或者不选括号...

2021-02-08 19:40:58 82

原创 90. 子集 II

解答成功: 执行耗时:2 ms,击败了52.24% 的Java用户 内存消耗:38.5 MB,击败了91.12% 的Java用户class Solution { List<List<Integer>> res =new ArrayList<>(); //深度递归回溯 public void func(List<Integer> sub_list,int...

2021-02-08 16:39:00 49

原创 47. 全排列 II

47. 全排列 II难度中等581给定一个可包含重复数字的序列nums,按任意顺序返回所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2], [1,2,1], [2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示:1 <= nums.length <= 8 -10 <= n...

2021-02-07 15:55:46 88

原创 46. 全排列

46. 全排列难度中等1116给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]通过次数251,458提交次数324,356参考(示例图):https://leetcode-cn.com/problems/permutations/solution/quan-pai-lie-by-leetcode-sol..

2021-02-07 14:39:46 74

原创 40. 组合总和 II

40. 组合总和 II难度中等485给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,所求解集为:[ [1, 7], [1, 2, 5], [2, ...

2021-02-06 18:34:30 61

原创 39. 组合总和

39. 组合总和难度中等1152给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:(注意这里可能会重复选择)[ [7], [2,2,3]]...

2021-02-06 17:00:34 70

原创 78. 子集

78. 子集难度中等978给你一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10 -10 <= ...

2021-02-05 01:01:03 118

原创 452. 用最少数量的箭引爆气球(稍微总结一下贪心)

贪心思想:完成目标的前提下,尽可能找到最优的边界。45 跳跃题目,就是先确定能跳的区间之后再找到能跳的最大数。本题目气球,先排序,然后确定能射爆该气球的前提下尽可能多的去射爆其他气球。452. 用最少数量的箭引爆气球难度中等343在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处

2021-02-04 22:36:40 71

原创 45. 跳跃游戏 II

45. 跳跃游戏 II难度困难815给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。说明:假设你总是可以到达数组的最后一个位置。23:08 info ...

2021-02-02 23:10:18 72

原创 55. 跳跃游戏

55. 跳跃游戏难度中等1030给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该...

2021-02-02 21:34:09 65

原创 leetcode URL化

面试题 01.03. URL化难度简单28URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)示例 1:输入:"Mr John Smith ", 13输出:"Mr%20John%20Smith"示例 2:输入:" ", 5输出:"%20%20%20%20%20"提示:字符串..

2021-02-02 17:29:15 69 1

原创 989 数组形式的整数加法

//对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。 //// 给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。 //// //// // //// 示例 1: //// 输入:A = [1,2,0,0], K = 34//输出:[1,2,3,4]//解释:1200 + 34 = 1234// //// 示例 2: //// 输入:A = [2,7,4], K.

2021-01-22 00:48:17 136

原创 402.移掉k位数字

/给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 //// 注意: //// // num 的长度小于 10002 且 ≥ k。 // num 不会包含任何前导零。 // //// 示例 1 : //// //输入: num = "1432219", k = 3//输出: "1219"//解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。// //// 示例 2 : //// //输入: num .

2021-01-22 00:09:46 85

原创 376 摆动序列

//如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 //// 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,//4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。 //// 给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从.

2021-01-21 21:33:01 74 1

原创 100人坐飞机,第一个乘客在座位中随便选一个坐下,第100人正确坐到自己坐位的概率是?

100人坐飞机,第一个乘客在座位中随便选一个坐下,第100人正确坐到自己坐位的概率是?他们分别拿到了从1号到100号的座位,这些乘客会按号码顺序登机并应当对号入座,如果他们发现对应号座位被别人坐了,就会在剩下空的座位随便挑一个坐.现在假设1号乘客疯了(其他人没疯),他会在100个座位中随便选一个座位坐下,问:第100人正确坐到自己坐位的概率是多少?(也可推广到n名乘客n个座位的情况)把握一个前提:隐含最后一个坐对,再去考虑概率。思路:一旦1号疯子选到了1号座位,那么最后一个乘客一定坐对!一.

2021-01-21 17:58:05 2906

原创 455 分发饼干

//假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 //// 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i//],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 // //// 示例 1: //// //输入: g = [1,2,3], s = [1,1]//输.

2021-01-20 20:38:09 63

原创 628. 三个数的最大乘积

628. 三个数的最大乘积难度简单248给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。思路1:本质是找到最大的三个数和最小的两个数来操作 解答成功: ...

2021-01-20 19:13:46 56

原创 23.合并k个有序链表

//给你一个链表数组,每个链表都已经按升序排列。 //// 请你将所有链表合并到一个升序链表中,返回合并后的链表。 //// //// 示例 1: //// 输入:lists = [[1,4,5],[1,3,4],[2,6]]//输出:[1,1,2,3,4,4,5,6]//解释:链表数组如下://[// 1->4->5,// 1->3->4,// 2->6//]//将它们合并到一个有序链表中得到。//1->1->2-&...

2021-01-20 17:04:07 87 1

原创 21. 合并两个有序链表

21. 合并两个有序链表难度简单1485将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是[0, 50] -100 <= Node...

2021-01-19 15:31:55 232

原创 138. 复制带随机指针的链表

给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。我们用一个由n个节点组成的链表来表示输入/输出中的链表。每个节点用一个[val, random_index]表示:val:一个表示Node.val的整数。random_index:随机指针指向的节点索引(范围从0到n-1);如果不指向任何节点,则为null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10...

2021-01-19 11:47:13 77

vc++6.0 win7可用

vc++6.0 win7可用,当时在网上自己找的,亲测可用。而且不需要很复杂的安装。1、解压缩 2、点击根目录的ShortCut.exe 3、看看桌面是不是已经出现了vc6的快捷方式?接下来知道怎么做了吧?

2019-01-21

空空如也

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

TA关注的人

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