
算法
LiaoJiaYin
这个作者很懒,什么都没留下…
展开
-
三种二分法(中间,左边界,右边界)
随便找一个 public static int binarySearch(int[] arr,int key) { int left=0,right=arr.length-1; while(left<=right) { int m=left+(right-left)/2; if(arr[m]==key) return m; else if(arr[m]>key) right=m-1; else left=m+1; } ret原创 2021-06-13 22:49:23 · 316 阅读 · 0 评论 -
并查集模板
并查集模板// 并查集模板class UnionFind { int[] parent; int[] size; int n; // 当前连通分量数目 int setCount; public UnionFind(int n) { this.n = n; this.setCount = n; this.parent = new int[n]; this.size = new int[n];原创 2021-01-23 16:51:36 · 159 阅读 · 0 评论 -
背包问题(广度优先搜索解法)
背包问题(广度优先搜索解法)**问题描述:有n件物品,每件物品的重量为W[i],价值为C[i].现在需要选出若干物件放入一个容器量为V的背包中,使得在选入背包的物品重量和不超过V的前提下,让背包中的物品价值之和最大,求最大价值**public static void main(String[] args) { // TODO Auto-generated method stub int [] weight=new int[]{2,6,9,5,4}; int[] value = new int[原创 2020-12-16 23:03:57 · 643 阅读 · 1 评论