- 博客(23)
- 收藏
- 关注
原创 fatal error: openssl/bio.h: 没有那个文件或目录 #include <openssl/bio.h>
libssl-dev包含libraries, header files and manpages,他是openssl的一部分,而openssl对ssl进行了实现~出现这个或者fatal error: openssl/名单.h: No such file or directory。都是没有安装libssl-dev~使用sudo apt-get install libssl-dev来安装libssl-dev即可。
2023-03-10 20:13:05
1182
原创 opencv下载过慢的问题
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
2022-12-05 16:56:12
3938
2
原创 VirtualBox 安装 ubuntu后安装增强工具无效的解决办法
点击虚拟系统窗口内的设备——安装增强工具。此时可能没有反应,但虚拟机内会自动加载一个光盘镜像。手动打开该光盘,并右键使用终端打开。等他进程跑完,提示重启的时候重启即可。
2022-11-15 19:48:52
2754
8
原创 java.lang.AbstractMethodError: Method com/mysql/jdbc/ResultSet.isClosed()Z is abstract
mysql-connector-java版本过低。插入数据,更新数据,删除数据操作都可以成功。更换更高的版本可以解决。
2022-07-25 19:03:31
600
原创 LeetCode 1005 k次取反后最大化数组和
思路:1 将数组进行排序2 当前数小于 0 时翻转当前值 并且如果下一个数值的绝对值<= 当前数值 则下标 加一(idx ++ )3 当前数值 大于0 时 ,此时数值是数组绝对值最小。反复翻转当前数值4 当翻转次数 大于数组的长度时 就将当前 数值反复翻转class Solution { public int largestSumAfterKNegations(int[] nums, int K) { if (nums.length == 1)...
2022-04-26 16:08:41
126
原创 LeetCode 55 跳跃游戏
假如当前大小为3 可以选择跳1步 2步 或者 3步使用贪心算法:for (int i = 0; i <= coverRange; i++) { coverRange = Math.max(coverRange, i + nums[i]); if (coverRange >= nums.length - 1) { return true; } }循环的过程就是模拟...
2022-04-24 17:57:17
2138
原创 LeetCode 491 递增子序列
重点是去重:考虑一下去重问题,我使用了 O(n)O(n) 的判重方法:设 stack 中最后一个值的位置为 last。如果 stack 为空,则 last = -1。设当前正在处理的位置为 pos。如果在 nums 的子区间 [last+1, pos) 中,存在和 nums[pos] 相同的值,则当前 nums[pos] 必须丢弃,不然会产生重复的子序列。设现在 stack = [4, 6], pos = 4。如果只检查是否递增的话,nums[4] = 7 是可以放入的,放入后 s..
2022-04-17 19:28:51
107
原创 LeetCode 699 修剪二叉搜索树
publicTreeNodetrimBST(TreeNoderoot,intlow,inthigh){if(root==null){returnroot;}// 如果当前节点的值小于 最小值 则将右子节点赋给当前节点 //如果当前节点的值大于 最大值 则将左子节点赋给当前节点while(root!=null&&(ro...
2022-04-04 22:00:52
256
原创 LeetCode 450 删除二叉搜索树的节点
思路一:先遍历树 如果当前节点不是要删除的节点则把当前节点返回给上一个节点 或者 遍历到空节点也返回给上一个节点如果当前节点是要删除的节点 分几种情况1. 如果被删除的节点 左子节点为空 就返回 右子节点 给前一个节点2. 如果被删除的节点 右子节点为空 就返回 左子节点 给前一个节点3. 如果左右子节点都不为空 就找到当前节点的 右子节点 迭代到他的最左下的子节点 把最左下的子节点赋值给被删除的节点 再把最左下的节点删除 删除最左下也有两种方法...
2022-04-02 15:29:31
250
原创 LeetCode 236 找最近的公共祖先
必须使用后续遍历classSolution{publicTreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){if(root==null||root==p||root==q){//递归结束条件returnroot; // 只要找到相等的节点 就返回当前节点 或者递归结束}...
2022-03-28 22:23:06
524
原创 LeetCode 501 二叉搜索树的最小绝对值
因为是一个二叉搜索树 满足节点左边的值小于节点的值 节点右边的值大于节点的值所以使用中序遍历 保证有序还需要记录 当前节点的 前一个节点的值 preNode 计算与当前节点的差值class Solution { TreeNode pre;// 记录上一个遍历的结点 int result = Integer.MAX_VALUE; public int getMinimumDifference(TreeNode root) { if(root...
2022-03-28 11:14:29
308
原创 LeetCode 98 验证二叉搜索树
使用中序遍历中序 遍历是一个有序数列 可以利用这个性质class Solution { TreeNode max; // 递归 public boolean isValidBST(TreeNode root) { if (root == null) { return true; } // 左 boolean left = isValidBST(root.left)...
2022-03-27 13:07:03
569
原创 LeetCode 513 找树左下角的值
使用全局变量记录最大深度 和 最底层最左边的值 如何确保最后一层的记录的数值是最左边的数值 使用前序遍历就可以保证class Solution { private int Deep = -1; private int value = 0; public int findBottomLeftValue(TreeNode root) { value = root.val; findLeftValue(root,0); ...
2022-03-24 22:02:45
73
原创 LeetCode 404 求左子叶之和
public int sumOfLeftLeaves(TreeNode root) {if (root == null) return 0; int leftValue = sumOfLeftLeaves(root.left); // 左 int rightValue = sumOfLeftLeaves(root.right); // 右 ...
2022-03-24 21:09:11
66
原创 LeetCode 110 平衡二叉树
自底向上法 (最快捷的方法)public static boolean isBalanced(TreeNode root) { return getHeight(root) != -1; } private static int getHeight(TreeNode root) { if (root == null) { return 0; } int leftHeight = g...
2022-03-23 16:47:40
90
原创 LeetCode 117 填充每个节点的下一个右节点2
时间复杂度 O(n)空间复杂度O(1)方法很妙 !!!!!!! public Node connect(Node root) { if (root == null) return root; //cur我们可以把它看做是每一层的链表 Node cur = root; while (cur != null) { //遍历当前层的时候,为了方便操作在下一 ...
2022-03-21 18:26:57
54
原创 LeetCode 116 填充每个节点的下一个右节点
因为是完美树 所以每个子节点 有左子节点 就会有子节点三种方法方法一 使用 队列 将每层的节点存储在 队列中public static Node rightToNext(Node root) { ArrayDeque<Node> queue = new ArrayDeque<>(); Node node = root; if (root == null) { return root; ...
2022-03-21 17:14:17
60
原创 LeetCode 239 滑动窗最大值
方法一:创建 一个队列 保证加入到队列的数据按照从大到小排列当数据需要插入队列时 和队列的最后的数据 进行比较 如果队列最后的数据 比当前值小 就说明这个数据一定不是这窗口的最大值 就把它删除掉 直到遇到 大于等于当前值的数据 加入到 队列的最后如果队列头的数据 已经不在当前窗口时 就去除掉 队列头的数据 直到 队列头是处于当前窗口 public static int[] maxSlidingWindow(int[] nums, int k) { ...
2022-03-18 14:21:52
113
原创 LeetCode 1047. 删除字符串中的所有相邻重复项
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca" 输出:"ca" 解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。提示:1 &
2022-03-17 19:21:46
81
原创 Leetcode翻转链表
使用双指针首先定义一个cur指针,指向头结点,再定义一个pre指针,初始化为null。然后就要开始反转了,首先要把 cur->next 节点用tmp指针保存一下,也就是保存一下这个节点。为什么要保存一下这个节点呢,因为接下来要改变 cur->next 的指向了,将cur->next 指向pre ,此时已经反转了第一个节点了。接下来,就是循环走如下代码逻辑了,继续移动pre和cur指针。最后,cur 指针已经指向了null,循环结束,链表也反转完毕了。 此时我们ret
2022-03-13 16:16:22
78
原创 leetCode 三数之和 四数之和 双指针
先将数组从小到大排序三数之和四数之和拿这个nums数组来举例,首先将数组排序,然后有一层for循环,i从下标0的地方开始,同时定一个下标left 定义在i+1的位置上,定义下标right 在数组结尾的位置上。依然还是在数组中找到 abc 使得a + b +c =0,我们这里相当于 a = nums[i] b = nums[left] c = nums[right]。接下来如何移动left 和right呢, 如果nums[i] + n...
2022-03-12 12:38:01
62
原创 安装scikit-image
在网上搜了一下怎么安装scikit-image,发现有些教程很麻烦,然后自己尝试了一下,特此记录,养成记录的好习惯。具体步骤:1.在Anaconda下创建一个虚拟环境用来安装该包 conda create -n skimage python=3.62.创建完成后进入该虚拟环境,并安装scikit-image activate skimage pip install scikit-image3.安装完成后,在skimage虚拟环境下进入python,然...
2021-10-12 11:11:50
5311
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人