自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2024 Windows10 | 搭建MySQL Cloudbeaver 可视化DBS | Docker Compose本地环境

Docker 方便一键安装 删除,爽。在使用 Cloudbeaver 连接mysql时,Host 填写 localhost 连不上,提示连接失败,mysql的容器的日志也没消息,下了 dbeaver 免安装运行版直接就连上了,后面尝试一下发现要写具体的ip地址才行。同时这个网页版的DBS的SQL功能看起来没有软件版丰富,凑合用得了。

2024-01-20 15:54:10 584

原创 neovim 正则搜索替换 | NERDTree打开隐藏文件 | 窗口移动

_^\_$?nN。

2024-01-12 11:14:44 871

原创 Makefile 入门笔记 | 常见函数 | 选项 | 命令

Makefile中有一些常见的函数,它们提供了在Makefile中进行文本处理和操作的能力。而没有指定具体的目标时,Make工具会尝试构建默认目标,而通常这个默认目标就是。命令和选项,实际上还有更多的选项可以根据具体的需求使用。是一个常见的目标名称,它通常被用作默认目标。中,可以方便地一次性构建整个项目或执行一系列任务。目标,根据项目的需要添加相关的依赖项和命令。或查阅相关文档来获取更详细的信息。你可以在Makefile中自定义。这样,通过将常用的目标放在。在Makefile中,是默认目标,它依赖于。

2024-01-11 11:20:50 920

原创 win vscode 配置默认终端为 anaconda

win vscode 配置默认终端为 anaconda

2023-02-04 22:14:54 809 1

原创 leetcode hot100 easy

leetcode hot100 easy

2023-02-02 17:49:45 361

原创 chatgpt辅助学习工具入门 2023年1月19日

- 它可以简单理解上下文,进行提问,配合费曼技巧辅助自己进行学习和记忆- 但是它不能保证生成的代码和答案是完全正确的- 作为一个创造工具去提高自己的效率

2023-01-19 11:24:20 1772

原创 vscode配置Markdown snippet 的快捷键

vscode配置Markdown snippet 的快捷键

2023-01-11 23:12:40 604

原创 Windows Anaconda YOLOv3环境部署--2023年1月8日

Windows Anaconda YOLOv3环境部署--2023年1月8日

2023-01-08 16:13:31 1103 3

原创 树莓派项目归档

项目归档

2023-01-04 22:34:45 338 1

原创 vscode 插件 markdown-preview-enhanced 设置深色预览主题

vscode 插件 markdown-preview-enhanced 设置深色预览主题

2022-10-22 23:50:09 1317

原创 1143.最长公共子序列

1143.最长公共子序列思路dp:长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序列为dp[i][j]class Solution { public int longestCommonSubsequence(String text1, String text2) { int size1 = text1.length(); int size2 = text2.length(); int[

2021-10-24 20:39:46 108 1

原创 hdu 1312 C++

hdu 1312hdu 1312 题目BFSoutputDFSoutputhdu 1312 题目• 一个长方形的房间,铺着方砖,每块砖是 #或黑点. 。• 一个人站在黑砖上,可以按上、下、左、右方向移动到相邻的砖。• 他不能在#上移动,他只能在黑砖上移动。• 起点是@,要求:遍历所有黑点。BFSBFS 使用队列辅助实现;节点元素包含了位置的x,y。将元素进队时将元素标记为已经访问,下次搜索时跳过。返回的是可以走的位置数目。//ECUST luoyongjun#include&lt

2021-10-23 19:39:27 772

原创 718. 最长重复子数组

718. 最长重复子数组思路求连续子序列、子数组,dp适合。dp[i][j] 以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]。递推从1开始,利用初始值dp[0][0]class Solution { public int findLength(int[] nums1, int[] nums2) { // 数组初始化大小需要注意多一行一列 int[][] dp = new int[nums1.length +

2021-10-23 09:06:40 86

原创 674. 最长连续递增序列

674. 最长连续递增序列思路dp,以下标 i 为结尾的数组的连续递增的子序列长度为dp[i]。默认所有连续长度为 1递推公式:当 i + 1 项大于 i 项时,说明后面 i + 1 可连续;即 dp[i+1] = d[i] + 1;class Solution { public int findLengthOfLCIS(int[] nums) { int size = nums.length; int[] dp = new int[size];

2021-10-22 08:53:15 84

原创 300.最长递增子序列

300.最长递增子序列思路dp,表示i之前包括i的最长上升子序列;Arrays.fill(dp, 1); 初始化所有值为1,因为单个子序列长度为 1;递增子序列的新加入元素必须比前面的元素都大class Solution { public int lengthOfLIS(int[] nums) { int size = nums.length; if(size < 2) return size; int[] dp = new in

2021-10-21 09:15:06 85

原创 714.买卖股票的最佳时机含手续费

714.买卖股票的最佳时机含手续费思路在卖出比较的时候减去手续费即可class Solution { public int maxProfit(int[] prices, int fee) { int size = prices.length; if(size == 0) return 0; // 0 持有股票, 1 无股票 int[][] dp = new int[size][2]; dp[0][0] =

2021-10-20 08:30:12 60

原创 309.最佳买卖股票时机含冷冻期

309.最佳买卖股票时机含冷冻期思路四种dp 状态:买入,卖出、今日卖出、冷冻初始化只需要将买入的设置为价格负数,其他三个卖出利润都是0class Solution { public int maxProfit(int[] prices) { int size = prices.length; if(size == 0) return 0; // 0 买入 1 卖出状态 2 今天卖出 3 冷冻期 int[][] dp =

2021-10-19 09:27:54 60

原创 188.买卖股票的最佳时机IV

188.买卖股票的最佳时机IV思路dp 二维数组的含义是 第 i 天第 k 次交易状态(买入卖出)的利润;初始化dp数组时,所有的买入都是 -price[0];所有的卖出都是 0;递推的是第 k 次买入和卖出的利润;最后要返回的最后一次卖出的利润,所以递推时 要使得 j + 2 = 2 * k ,即遍历条件为 for(int j = 0;j <= 2 * k - 2;j += 2);最后 return dp[size - 1][2 * k];class Solution {

2021-10-18 10:51:43 68

原创 123.买卖股票的最佳时机III

123.买卖股票的最佳时机III思路dp,最多只能买卖两次,每天有五种状态,其中四种需要讨论。dp[i][] 每天的各个状态的利润。卖出的利润一定比买入的利润大dp 初始化时,看作第一天可以多次买入卖出。例如第一天的第二次买入初始化可以是第一次买入卖出后再买入,因为第一天买入卖出价格一样所以利润为0,再买入就是 -prices[0]class Solution { public int maxProfit(int[] prices) { if(prices.lengt

2021-10-17 09:46:31 67

原创 122.买卖股票的最佳时机II

122.买卖股票的最佳时机II思路可以多次买卖,计算持有时将上次的利润加上。可以利用滚动数组节约空间返回滚动数组最后的下标需要用 size 确定class Solution { public int maxProfit(int[] prices) { if(prices.length == 1) return 0; int size = prices.length; int[][] dp = new int[size][2];

2021-10-16 10:02:26 64

原创 121. 买卖股票的最佳时机

121. 买卖股票的最佳时机思路dp是个二维数组,表示第i天持有和不持有的最高收益。数组初始化,对于第一天就入股的资产为 -price[0],不买的为0;后面递推公式,对于持有和不持有的分别两种情况;持有的递推,继续持有,其收益和昨天持有的一样。今天刚持有,收益为 -price[i]不持有的递推,继续不持有,收益和昨天一样,今天刚卖出,今天的收益为昨天持有的收益加上今天卖出的价格 ,即 dp[i-1][0] + prices[i]class Solution { public int

2021-10-15 09:50:20 61

原创 337.打家劫舍 III

337.打家劫舍 III思路题目要求不能同时偷父结点和其孩子结点。要么偷父结点,要么偷其两个孩子结点。这里可以使用一个长度为2的状态数组,记录当前节点偷与不偷所得到的的最大金钱。关于树的的遍历这里使用后序遍历,左右根。最后返回的就是根节点的dp数组中的偷与不偷当前结点的金额的最大值。class Solution { public int rob(TreeNode root) { int[] dp = robrec(root); return Math.

2021-10-14 09:47:09 61

原创 213.打家劫舍II

213.打家劫舍II思路考虑不包含头元素和不包含尾元素的两种情况,取最大值;利用函数求区间的最大金额class Solution { public int rob(int[] nums) { if(nums.length == 1) return nums[0]; if(nums.length == 2) return Math.max(nums[0],nums[1]); // 不包含尾元素的区间最高金额 int r1 =

2021-10-13 10:46:26 64

原创 198.打家劫舍

198.打家劫舍思路dp的含义,至下标为 i 的房屋能得到的最大价值由于题目限制,dp[ i ] 不能考虑其前一个 dp[ i - 1],所以对于 dp[ i ] 要考虑 dp[ i - 2];class Solution { public int rob(int[] nums) { if(nums.length == 1) return nums[0]; int size = nums.length; int[] dp = new in

2021-10-13 08:41:03 52

原创 494. 目标和

494. 目标和思路该表达式由 加法和 x 与 减法和 sum-x 构成;题目求 x - (sum - x) = target,x = (target + sum) / 2;将 加法和 x 作为背包重量,转换为01背包问题有两种情况无解,1. (target + sum) 为奇数不能整除,得不到 x。例如 【1,1】的 sum = 2,target = 1; 1+2为奇数,无解。2. 绝对值 target 大于 sum,例如 target = 10,sum = 2;dp[0] = 1;求

2021-10-10 09:39:09 55

原创 1049 最后一块石头的重量 II

最后一块石头的重量 II思路尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小,这样就化解成01背包问题了。所以背包的最大容量为 sum / 2;求出背包最大容量的重量后,用 sum 消去两堆石头得到剩下的石头重量。class Solution { public int lastStoneWeightII(int[] stones) { int sum = 0; for(int num: stones) sum += num; int

2021-10-09 08:10:04 58

原创 416 分割等和子集

https://leetcode-cn.com/problems/partition-equal-subset-sum/思路:利用01背包动规解决;dp 数组的含义就是: 背包容量 j 能装的最大容量为 dp[ j ];背包重量就是数组和的一半;dp 递推公式是: dp[ j ] = max(dp[ j ], dp[ j - nums[ i ] ] + nums[ i ]); 考虑放不放当前的物品 i ,取价值最高的。其中 nums 的元素其价值和重量是等价的代码使用了一维滚动数组,其遍历顺序

2021-10-08 09:15:36 70

原创 Java IO 练习Demo

package com.cwl;import org.junit.Test;import java.io.*;import java.net.URL;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;public class IOStreamTest { private static class A implements Serializable { private int x; .

2021-10-07 16:21:10 110

原创 56 合并区间

56 合并区间class Solution { public int[][] merge(int[][] intervals) { List<int[]> res = new LinkedList<>(); Arrays.sort(intervals, (o1, o2) -> Integer.compare(o1[0], o2[0])); int start = intervals[0][0]; fo

2021-09-21 18:22:08 103

原创 通过 languagereactor 浏览器插件学英语

languagereactorhttps://www.languagereactor.com/观看 快捷操作总结https://www.languagereactor.com/安装插件后观看目录中的视频有双语字幕,目前(2021.9)插件支持chrome (当然edge也可)观看 快捷操作还可以将单词标注AP 模式指的是每一句之后自动暂停。总结可以培养自己的听力和看视频学习。...

2021-09-12 22:28:40 5306

原创 力扣刷题笔记--304 二维区域和检索 - 矩阵不可变 前缀和

304 二维区域和检索 - 矩阵不可变作者:AC_OIer链接:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/solution/xia-ci-ru-he-zai-30-miao-nei-zuo-chu-lai-ptlo/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。思路:二维前缀和解决的是二维矩阵中的矩形区域求和问题。二维前缀和数组中的每一个格子记录的是「以当

2021-08-05 11:31:01 130

原创 一个关于java泛型的疑问

之前对如下代码的区别不了解Stack<Integer> stack = new Stack<Integer>();Stack stack1 = new Stack();现在写个demo理解下,主要区别为是否指定了泛型。import java.util.ArrayList;import java.util.Stack;/** * @Description: TODO * @author: HardyDragon * @date: 2021年07月28日 22:07

2021-07-28 22:24:22 73

原创 BFS/DFS处理二维矩阵抽象问题例题

这是自己搜集的有关bfs和dfs关于二维01数组的例题BFS烂橘子01矩阵图像渲染DFS岛屿数量岛屿最大面积BFS烂橘子这里队列存储数组下标的方式和其他的不同class Solution { int[] dr = new int[]{-1, 0, 1, 0}; int[] dc = new int[]{0, -1, 0, 1}; public int orangesRotting(int[][] grid) { int R = grid.length, C

2021-07-15 21:12:12 143

原创 java--动态代理学习笔记

动态代理学习笔记什么是代理设计模式?为什么使用动态代理?练习Demointerface UserServiceclass UserServiceImplclass ProxyInvocationHandler调用什么是代理设计模式?分为静态代理和动态代理。将原有业务代码不变更作为原则,通过代理类来实现对原有业务的功能扩展。为什么使用动态代理?使用动态代理解决静态代理需要手写多个代理类应对不同业务的情况练习Demointerface UserServicepackage ProxyDemo;

2021-07-14 16:53:45 72

原创 java--快速排序

快速排序什么是快速排序?双边循环法demo调试单边循环法什么是快速排序?排序动画演示网站属于交换排序的一种,利用了分治的思想,将序列根据 pivot (中间值) 划分为两个序列,在 pivot 左边的元素全部都比 pivot 值小,在右边的比 pivot 大,对子序列递归操作。双边循环法demo递归,利用辅助函数确定 pivot 的索引并排序。package sort;/** * @Description: TODO * @author: HardyDragon * @date: 20

2021-07-07 15:44:48 65

原创 java实现冒泡排序

java实现冒泡排序前言BubbleSort 冒泡排序调试使用交换 flag 优化调试总结前言C语言实现冒泡排序 在主函数调用之前使用C实现过冒泡,但是不够精炼,描述不够简洁,便使用java来重新输出一下。BubbleSort 冒泡排序排序动画演示网站(建议收藏)冒泡排序是将一个无序的序列(例如数组),从头开始两两比较交换直到有序的过程,每轮两两交换可以让后面部分元素有序。例如,{3,9,6} 当交换比较到 {3,6,9} 后两个元素(数组大小 3 - 1 = 2 )有序时,整体有序。下

2021-07-06 11:07:11 99

原创 二分查找笔记(1)

二分查找什么是二分查找?二分查找模板一什么是二分查找?在最简单的形式中,二分查找对具有指定左索引和右索引的连续序列进行操作。这就是所谓的查找空间。二分查找维护查找空间的左、右和中间指示符,并比较查找目标或将查找条件应用于集合的中间值;如果条件不满足或值不相等,则清除目标不可能存在的那一半,并在剩下的一半上继续查找,直到成功为止。如果查找以空的一半结束,则无法满足条件,并且无法找到目标。作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/

2021-07-05 10:32:20 75

原创 mysql基础总结

mysql基础总结前言工具思维导图前言这段时间根据《MYSQL必知必会》这本书做了碎片化的输出,这里进行一个思维导图式的总结,回顾一下自己所学的同时总结一下知识点,方便自己日后查看。这本书重点讲解了mysql的增删改查,其中先讲查的内容占了三分之二。后面又讲了视图、游标也是关于查询的,存储过程和触发器以及事务管理的基本概念,期间也有关于建表和用户管理的相关知识。总体上阅读没有什么困难,比较好上手,之前看这本书是打算巩固一下mysql基础,然后打算去牛客网刷题。那么接下来关于mysql这部分可能会接着碎

2021-07-01 16:03:30 87 3

原创 mysql笔记(24)--安全管理

安全管理什么是安全管理?如何管理用户?创建用户删除用户设置访问权限修改密码查看当前使用的用户名思维导图--总结什么是安全管理?查询当前所有用户USE mysql;SELECT USER FROM `user` u ;如何管理用户?创建用户CREATE USER ben identified BY '12345'USE mysql;SELECT USER FROM `user` u ;IDENTIFIED BY指定的口令为纯文本,MySQL将在保存到user表之前对其进行加密。

2021-06-30 10:28:00 75 1

原创 设计模式笔记--工厂模式

设计模式笔记--工厂模式什么是工厂模式?实例什么是工厂模式?有一个接口和一些实现该接口的实现类,一个工厂类可以根据需求返回不同实现类的实例对象。当需要实现类的对象时,不通过实现类直接实例化,而是告诉工厂类自己的需求来获得实例对象;实例Gitee Web IDE...

2021-06-29 22:23:19 68

空空如也

空空如也

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

TA关注的人

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