- 博客(74)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java面试题目总结
HashMap原理https://blog.csdn.net/vking_wang/article/details/14166593HashMap和HashTable的区别 https://www.cnblogs.com/lchzls/p/6714335.htm解决Hash冲突的几种方法 https://blog.csdn.net/u012104435/article/details/479...
2020-04-17 18:30:00
199
原创 MySQL
-- 创建数据库create database test;-- 删除数据库drop database test;-- 创建表格create table if not exists test.t_test(id int auto_increment not null primary key,name varchar(20) not null,age int,borthday date,profile text)engine=InnoDB default charset=utf8;.
2020-06-20 17:07:22
210
原创 java.util.concurrent.*(并发工具类) 学习笔记
java.util.concurrent.*(并发工具包) 学习笔记1.并发工具类的作用 1. 为了并发安全; 2. 方便线程管理,避免大量锁的创建和销毁,提高运行效率; 3. 线程间协作2. 线程池线程池的重要性 1. 反复创建线程与销毁大量的线程开销大 2. 过多的线程会占用太多的时间线程池的好处 1. 合理利用CPU和内存 2. 方便统一管理线程 3. 避免锁的创建和销毁,加快响应速度线程池的构造函数重要参数 1. corePoolSize : 核心线程池线程数量
2020-06-18 10:53:15
561
原创 网络流量概念
网络流量是指两个通信节点之间传输的数据量,主要特征分为Packet-level特征、Flow-level特征和Stream-level特征。Packet-level的流量分类:主要关注数据包(packet)的特征及其到达过程,如数据包大小分布、数据包到达时间间隔的分布等;Flow-level的流量分类:主要关注流(flow)的特征及其到达过程,可以为一个TCP连接或者一个UDP流。其中,流通常指一个由源IP地址、源端口、目的IP地址、目的端口、应用协议组成的五元组;Stream-level的流量分类
2020-06-06 15:54:52
5966
原创 【动态规划】【leetcode152】乘积最大子数组
遍历一次:维持当前最大乘积imax和最小乘积imin,当出现负数时,当前最大乘积和当前最小乘积交换,imax = Math.max(imax * nums[i], nums[i]);imin = Math.min(imin * nums[i], nums[i]);max = Math.max(max, imax);/** * 动态规划 */public class Solut...
2020-05-06 10:13:48
239
原创 【二叉树遍历】先序遍历、中序遍历、后序遍历(Java)
二叉树的遍历先序遍历递归实现 /** * 先序遍历 (递归方法) * @param root */ public void FirstOrder_Recursive(TreeNode root){ if(root == null) return; System.out.print(root....
2020-04-18 20:46:54
195
原创 Java8新增功能
Java8新增功能1. 接口的默认和静态方法Java8 允许给接口添加一个非抽象方法的实现,只需要使用default关键字即可2. Lambda表达式Lambda表达式 (例如: (x, y) -> { return x + y; } ;λ表达式有三部分组成:参数列表,箭头(->),以及一个表达式或语句块。)3. 函数式接口所谓的函数式接口,当然首先是一个接口,然后就是在...
2020-04-17 23:02:30
212
原创 解决Hash冲突的方法
开放地址法线性再散列法是形式最简单的处理冲突的方法。插入元素时,如果发生冲突,算法会简单的从该槽位置向后循环遍历hash表,直到找到表中的下一个空槽,并将该元素放入该槽中(会导致相同hash值的元素挨在一起和其他hash值对应的槽被占用)。查找元素时,首先散列值所指向的槽,如果没有找到匹配,则继续从该槽遍历hash表,直到:(1)找到相应的元素;(2)找到一个空槽,指示查找的元素不存在,(所以不...
2020-04-17 12:33:35
165
原创 【通过移位实现加减乘除操作】
/** * 通过移位实现正整数的加减乘除 * */import java.util.*;public class Solution { /** * 加法 * @param num1 * @param num2 * @return */ public int Add(int num1, int num2){ ...
2020-04-11 16:17:17
387
原创 【画热力图heatmap】
## 可视化import seaborn as snsimport matplotlib.pyplot as pltsns.set()ax = sns.heatmap(out_shot, center=2000)plt.title('title')plt.savefig('heatmap.png')plt.show()
2020-04-08 17:06:28
1068
1
原创 【N皇后问题】【leetcode51】(Java)
【N皇后问题】【leetcode51】问题描述八皇后问题,一个古老而著名的问题,是回溯算法的典型案例。该问题由国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有 76 种方案。1854 年在柏林的象棋杂志上不同的作者发表了 40 种不同的解,后来有人用图论的方...
2020-04-07 19:01:09
213
原创 可视化 [matplotlib]
import matplotlib.pyplot as plt画直方图 plt.hist()matplotlib.pyplot.hist( x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype=u'bar', align=u...
2020-04-06 17:53:00
106
原创 pytorch 笔记
两张量相乘点乘 (矩阵相乘)tensor1.mm(tensor2)m x n 矩阵 乘以 n x d 得到 m x d 矩阵data = [[1,2], [3,4], [5, 6]]tensor = torch.FloatTensor(data)tensorOut[31]: tensor([[ 1., 2.], [ 3., 4.], [ 5., ...
2020-04-06 17:39:56
129
原创 【Java】java中两个 String 字符串类型数据大小比较
方法1如果两个数String字符串中 仅包含 数字 0 ~ 9 和小数点 " . "String a = "32";String b = "334";// 首先将两个数都转换为int 数据int a_N = Integer.valueOf(a);int b_N = Integer.valueOf(b);// 比较大小boolean res = a_N > b_N;方法2...
2020-04-05 19:27:37
31263
2
原创 【全排列问题】全排列问题解析及其应用(Java)
全排列问题全排列问题是一个经典的算法问题,需要将所有元素的所有可能的组合全部搜索到,如果集合中的元素都都各不相同,则全排列一共有 n ! 种组合。例如:a, b, c 的全排列为abc, acb, bac, bca, cab, cba全排列问题往往是首先给出一种排列,然后依次得到所有的排列组合。如果有两个元素,则其排列为(a, b) 和 swap(a, b);同样的,如果有多个元素,...
2020-04-02 18:02:20
410
原创 【二叉树】DFS 深度优先遍历 及其 应用 (Java)
文章目录二叉树的深度优先遍历二叉树DFS的应用二叉树DFS(递归方式)[Java]二叉树DFS(非递归堆栈方式)[Java]返回二叉树所有路径 [Java]判断是否存在 路径长度为 target 的路径 [Java]返回路径 和 为 target 的所有路径集合 [Java]测试代码 [Java]二叉树的深度优先遍历深度优先遍历(DFS)也叫深度优先搜索。它的定义是:不断地沿着顶点的深度方向遍...
2020-04-02 09:39:38
2032
2
原创 【栈】栈的压入、弹出序列(Java)
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的解题依次将元素按顺序压入序列,每次判断栈顶元素是否等于序列中的第 index个元素,如...
2020-03-31 22:30:15
100
原创 【栈】包含min最小值的栈 (Java)
简单双栈实现增加一个minStack 用以维持 此时的最小值,每次push进栈的同时,将将此时的最小值push到minStack中;同时出栈也将minStack 也出栈。/** * 双栈实现 * 空间复杂度 O(n) */import java.util.Stack;public class Solution { Stack<Integer> minSta...
2020-03-31 19:16:09
145
原创 【二叉树】 二叉树的子树 && 二叉树的子结构(Java)
二叉树的子树判断一个树是否为另一个大的树的子树public class Solution { public boolean HasSubtree(TreeNode root1, TreeNode root2){ if(root2 == null) return false; if(root1 == null) ...
2020-03-30 22:10:04
217
原创 【链表】链表反转 (Java)
链表反转利用两个指针 pre 和 cur 分别表示当前遍历到的节点的前一个节点 和 当前遍历到的节点,每次对节点的操作是cur.next = pre将两个指针同时往后移动,注意 这里不能直接用cur = cur.next;pre = pre.next因为 cur.next 已经是 pre节点正确做法ListNode tmpCur = cur.next;cur.next = pre...
2020-03-30 16:15:49
94
原创 【链表】返回链表倒数第k个结点(Java)
快慢双指针双指针 pre 和 post 分别指向 当前遍历结点 和 当前往后数 k 个节点,当post节点到达链表最后一个节点时,此时的pre 即为倒数第 k个节点。public class Solution { public ListNode FindKthToTail(ListNode head,int k) { if(k < 1) r...
2020-03-30 15:48:56
376
原创 原码、反码、补码 : 你想了解的,都在这里了!!!(Java)
计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同 。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。Java 中整数类型一共有四种,分别是 byte, short, int, long。分别占据8位...
2020-03-30 14:03:18
222
原创 【二叉树】由前序遍历和中序遍历构造二叉树(Java)
【二叉树】由前序遍历和中序遍历构造二叉树递归if(preorder.length != inorder.length) return null; if(preorder.length == 0) return null; if(preorder.length == 1) return new...
2020-03-29 21:55:51
276
原创 pickle的使用:文件的存入与读出
文件存入import picklewith open(file_path, 'wb') as f: pickle.dump(data, f)文件读出import picklewith open(file_path, 'wb') as f: data = pickle.load(f)
2020-03-29 18:27:06
795
原创 【二叉树】层次遍历
【二叉树】层次遍历记录size来维持public List<List<Integer>> levelOrder(TreeNode root){ if(root == null) return new ArrayList<List<Integer>>(); Queue<TreeNode&...
2020-03-25 15:40:11
79
原创 【二叉树】完美二叉树
【二叉树】完美二叉树完美二叉树 (Perfect Binary Tree)A Perfect Binary Tree(PBT) is a tree with all leaf nodes at the same depth. All internal nodes have degree 2.一个深度为k(>=-1)且有2^(k+1) - 1个结点的二叉树称为完美二叉树完全二叉树 (...
2020-03-25 14:03:35
2005
原创 【动态规划】【贪心算法】leetcode376 摆动序列(Java)
【动态规划】【贪心算法】leetcode376 摆动序列题目详情暴力法(递归)动态规划** * 动态规划 * 时间复杂度O(n^2) */public class Solution { public int wiggleMaxLength(int[] nums){ if(nums.length < 2) return num...
2020-03-20 22:15:56
200
原创 【数组】leetcode80删除排序数组中的重复项Ⅱ(Java)
【数组】leetcode80 删除排序数组中的重复项Ⅱ(Java)题目详情暴力法/** * 时间复杂度O(n^2) */public class Solution { public int removeDuplicates(int[] nums){ if(nums.length < 3) return nums.length;...
2020-03-20 10:40:46
103
原创 【二叉树】leetcode104二叉树的最大深度(Java)
【二叉树】leetcode104 二叉树的最大深度题目详情递归/*** * 二叉树的最大深度 * 时间复杂度O(n) * 空间复杂度O(n) */public class Solution { public int maxDepth(TreeNode root){ if(root == null) return 0; ...
2020-03-19 22:57:36
186
原创 【贪心算法】leetcode122 买卖股票的最佳时机Ⅱ(Java)
【贪心算法】leetcode122 买卖股票的最佳时机Ⅱ题目详情暴力法(递归)/** * 暴力法 * 时间复杂度O(n^n) */public class Solution { public int maxProfit(int[] prices){ return helper(prices, 0); } private int help...
2020-03-19 19:54:55
210
原创 【贪心算法】leetcode134 加油站(Java)
leetcode134 加油站题目详情题目解析解法一遍历每一个加油站作为起始点,判断是否能完成环绕行驶一周,记录当前油箱中所剩余的油量,若当前油箱小于零,则遍历下一个加油站。public class Solution { public int canCompleteCircuit(int[] gas, int[] cost) { if(cost.length ...
2020-03-19 15:05:42
251
原创 【动态规划】leetcode279 完全平方数(Java)
【动态规划】leetcode279 完全平方数题目详情动态规划dp[i] = Math.min(dp[i], dp[i - j * j] + 1)/*** * 动态规划 * dp[i] = Math.min(dp[i], dp[i - j * j] + 1) */public class Solution { public int numSquares(int n){...
2020-03-18 22:49:37
326
3
原创 【动态规划】leetcode221最大正方形(Java)
【动态规划】leetcode221 最大正方形题目详情代码实现public class Solution { public int maximalSquare(char[][] matrix){ if(matrix.length == 0) return 0; if(matrix.length == 1) { ...
2020-03-18 21:00:04
171
原创 机器学习——L1正则化与L2正则化 区别
L1正则化和L2正则化的区别L1正则化L1正则化又称Lasso正则化,正则化项为 : L2正则化L2正则化利用二范数正则化项 : 共同点二者都是为了防止过拟合,用来限制模型参数的参数空间不同点L1可以让一部分特征的系数缩小到0,从而间接实现特征选择。所以L1适用于特征之间有关联的情况。L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没...
2020-03-18 16:11:18
415
原创 【动态规划】leetcode120 三角形最小路径和
【动态规划】leetcode120 三角形最小路径和题目详情dp[i][j] = min(dp[i - 1][j - 1], dp[i - 1][j]) + nums[i][j]/** * 动态规划 */public class Solution { public int minimumTotal(List<List<Integer>> trian...
2020-03-15 16:18:22
113
原创 【动态规划】leetcode85最大矩形 (Java)
【动态规划】leetcode85 最大矩形(Java)题目详情题目解析动态规划设置动态规划数组 dp[][] 数组中的元素表示 grid[i][j] 为1 时其右侧连续1的数目,然后向上寻找能形成的矩形的面积。width = dp[i][j];for(int k = i; k >= 0; k --){ if(dp[k][j] == 0) break; ...
2020-03-15 16:04:51
292
原创 【BFS 广度优先遍历】leetcode695岛屿的最大面积(Java)
【BFS广度优先遍历】leetcode695 岛屿的最大面积(Java)题目详情题目解析本题采用广度优先遍历,以每一个元素作为根节点进行广度优先遍历,取最大值作为最终结果。为了避免一个元素被遍历多次,元素被遍历之后设置成0。递归/** * 广度优先遍历(递归) */public class Solution2 { public int maxAreaOfIsland(i...
2020-03-15 15:49:48
243
原创 【动态规划】leetcode91 解码方法(Java)
【动态规划】leetcode91 解码方法(java)题目详情题目解析定义dp 数组,dp[i] 用以表示字符串 s 从0 到 i 的子字符串的解码方式的总数,当求解dp[i] 时 考虑当前位置s.charAt(i) 和 dp[i - 1] dp[i - 2];一共有以下几种情况:s.charAt(i) == ‘0’ : 若出现连续两个0 则返回 0; 否则 dp[i] = dp[...
2020-03-14 23:19:27
172
原创 【动态规划】leetcode300 最长上升子序列(Java实现)
leeetcode300 最长上升子序列(Java)题目详情题目解析看到题目寻找最长上升子序列时,首先想到需要枚举所有子序列,但是这样直接枚举时间复杂度相对较高,因此,我们想到能不能利用动态规划进行求解。根据动态规划的三个要素:重叠子问题: 求解问题时要遍历数组,当前数组为 i 时,此时的最长子上升子序列与 i - 1 时有关,因此包含重叠子问题。最优子结构: 最长子序列的长度存在,...
2020-03-14 23:05:05
268
原创 leetcode31 下一个排列(java)
leetcode31 下一个排列题目详情题目分析字典序在数学中,字典或词典顺序(也称为词汇顺序,字典顺序,字母顺序或词典顺序)是基于字母顺序排列的单词按字母顺序排列的方法。 这种泛化主要在于定义有序完全有序集合(通常称为字母表)的元素的序列(通常称为计算机科学中的单词)的总顺序。对于数字1、2、3…n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。例如对于5个数字...
2020-03-13 20:30:38
138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人