java
ohh`
这个作者很懒,什么都没留下…
展开
-
二分查找的变形(找大于等于x的第一个数/找小于等于x的最后一个数)
众所周知二分查找是一个在有序数组中很快的查找方式,而一般是找该元素在数组中的位置。那今天作者遇见个问题,查找第一个比x大的数,比如说[5]这个数组第一个比3大的数就是5,而用普通的二分思维找会找不到,所以应该变换一下写法找大于等于x的第一个数int l=0,r=max;while (l < r) { int mid=(l+r)/2; if(k>dp[mid])l=mid+1; //else代表的是k<=dp[mid]所以r=mid也在范围内 else原创 2021-02-03 16:00:54 · 3264 阅读 · 1 评论 -
动态规划-背包问题(0-1背包和完全背包)(Java)
0-1背包0-1背包特点就是有几种物品,每种物品有一个,分别给你重量和价值,然后怎么装才能获取最大利益个人感觉0-1背包的精髓就在画表即得出代码for (int i = 1; i <= 物品数; i++) { for (int j = 1; j <= 背包总重量; j++) { dp[i][j]=Math.max(dp[i-1][j],dp[i-1][j-当前物品重量]+当前物品价值); }}然后就是优化问题优化1:因为每次用的都是上一行原创 2021-02-02 20:42:19 · 186 阅读 · 0 评论 -
LCA问题(java实现)
什么是LCA问题LCA是最近公共祖先问题(Lowest Common Ancestor)的缩写解释:LCA是指对一颗有根树T的两个节点u和v最近公共祖先LCA(T,u,v)代表一个节点x,满足x是节点u和v的祖先距离根节点尽可能远即深度尽可能大例:(图片来自b站)LCA问题解决这里是跟leetcode的Krahets大佬学的,简直膜拜大概思想就是先递归到最底层,然后从最下面向上面返回一个值,如果找到u或v的话就就向上返回,直到返回到交点时候再向上返回交点,即为LCA(T,u,v),下面是大佬原创 2021-02-01 15:32:34 · 704 阅读 · 2 评论 -
八大排序----快速排序
快速排序是一种不怎么稳定的排序,最快时间复杂度为O(nlogn),最慢则需要O(n*n),作者不太喜欢这个排序,因为这个排序有库函数,谁愿意自己写呢(手动狗头)。大体思想:快排采用的是分治的思想,每次将一个数放到属于自己的位置,然后再去对左右排序,依次类推举例:数组:5,2,6,9,1,3,4,8,7如图,以4为基准,一个指针放在i=0,一个放在j=len-1,从右往左找一个比基准小的数(即应该出现在基准左面但却出现在右面了),然后和左指针所处互换,在从左向右找一个比基准大的数,再i,j互换,直到原创 2021-01-31 13:57:01 · 128 阅读 · 2 评论 -
数据结构-图-拓扑排序
拓扑排序是有向无环图的一种输出顺序,根据的是依赖性,即如果有图中的图结构,只有所有的前置节点输出完了才能输出当前节点,也就是依赖性,在什么前提下才能输出这个点。拓扑排序实现:说拓扑排序实现之前应该讲一个词,入度,什么是入度,即有几个点能到达当前节点也就是能进入当前节点,如图2这个节点的入度就是2.仔细思考,如果所有的节点入度都不为零,是否能实现拓扑排序,当然不能,因为每一个点都需要前置技能代表点之间互为前置技能,也就是形成了环,所以拓扑排序还被用来判断一个图中是否有环。想找所有点的前置技能,这个前置原创 2021-01-30 20:14:20 · 180 阅读 · 0 评论 -
数据结构-图的存储(邻接矩阵,邻接表)及遍历(dfs,bfs)
今天刷leetcode也是碰见了跟图有关的问题,那么今天就来介绍一下图的存储和遍历图存储的两种方式:邻接矩阵和邻接表邻接矩阵,顾名思义,本身是一个矩阵也就是二维数组,用一个二维数组的索引作为点与点之间的关系,用二维数组实际存储的数据储存是否相通或边权。用邻接矩阵存储时,遍历方式也分两种邻接矩阵的深度优先搜索/* * start:现在所在的点 * visit:判断当前点是否来过 * edges:储存边的数组 * points:储存点的数组 * */ p原创 2021-01-30 17:58:36 · 1873 阅读 · 0 评论 -
二维数组排序(java)
二维数组排序需要给一个比较器 int [][] ans=new int[intervals.length][2]; Arrays.sort(intervals, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { //现在是升序,如果是降序改成o2[0]-o1[0] re原创 2021-01-14 15:57:23 · 357 阅读 · 0 评论