![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java及基础算法及数据结构
。。。
押切徹
这个作者很懒,什么都没留下…
展开
-
算法题自定义比较或排序的总结
文章目录一、二维数组i[n][2]按x降序y升序对数组排序一、二维数组i[n][2]按x降序y升序对数组排序 Arrays.sort(people, new Comparator<int[]>() { public int compare(int[] person1, int[] person2) { if (person1[0] != person2[0]) { return p原创 2022-01-03 21:46:46 · 518 阅读 · 0 评论 -
二分查找汇总(转载,加了些许注释)
文章目录1.基本二分查找2.基于基本二分查找的变形1.基本二分查找 //1.1二分查找原始版--查找某个数的下标(任意一个) //在有序数组中查找某个数,找到返回数的下标,存在多个返回任意一个即可,没有返回-1。 //所有程序采用左右均为闭区间,即函数中n为最后一个元素下标,而不是元素个数。典型代码如下: public int binarySearch(int[] a, int n, int key){ //n + 1 个数 int low转载 2021-12-01 20:16:19 · 93 阅读 · 0 评论 -
动态规划:0-1背包,完全背包,多重背包
文章目录一、动态规划1.定义2.动态规划设计要素二、0-1背包1.问题2.解法一、动态规划1.定义2.动态规划设计要素二、0-1背包1.问题有一个可装4磅重物品的背包,有三件物品:吉他:1磅,1500元;音响:4磅,3000元;电脑:3磅,2000元;问如何装才能取得最大的价值。2.解法v[i]表示第i个物品价值;w[i]表示第i个物品重量;v[i][j]表示在前i个物品中能够装入容量为j的背包中的最大价值。公式:(1)v[i][0] = v[0][j];(2)w[i原创 2021-01-13 21:14:18 · 310 阅读 · 0 评论 -
几种排序算法(Java)
文章目录1.冒泡排序1.算法描述1.冒泡排序排序时相邻两对元素进行比较,从第一对进行到最后一对,较大的元素交换到后方,因为大数像气泡一样从前往后移动,所以叫冒泡排序。1.算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个(最后一个数已经是上一次排序后最大的数);重复步骤1~3,直到排序完成。...原创 2020-11-02 21:46:49 · 844 阅读 · 0 评论 -
LeetCode 剑指offer42.连续子数组的最大和 动态规划/easy
文章目录1.Description2.Example3.Solution1.Description输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。2.Example输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。3.Solution使用动态规划。基本思路是向后统计子数组的和,如果和小于等于0的话说明对后边的和没有贡献了,令数组从原创 2021-02-20 17:17:35 · 102 阅读 · 0 评论 -
Java大数相乘(使用BigInteger和BigDecimal以及使用数组实现大数相加)
文章目录1.BigInteger和BigDecimal2.大数相乘的题1.BigInteger和BigDecimal在 Java 中提供了用于大数字运算的类,即 java.math.BigInteger 类和 java.math.BigDecimal 类。这两个类用于高精度计算,其中 BigInteger 类是针对整型大数字的处理类,而 BigDecimal 类是针对大小数的处理类。在运算中 BigInteger 类型可以准确地表示任何大小的整数值,它可以表示的范围比integer大得多了。Big原创 2020-11-29 00:55:47 · 1994 阅读 · 0 评论 -
Scanner如何工作以及为什么不要在基于标记的输入之后使用基于行的输入
文章目录1.基于标记/行输入概念2.Scanner是如何工作的问题:不要在基于标记的输入之后使用基于行的输入?1.基于标记/行输入概念基于标记的输入:读取采用分隔符分隔的单个元素,而不是读取整行:如,next()(读取字符串),nextByte(),nextInt(),nextDouble()等。默认情况下分隔符是空格,可以使用useDelimeter(String regex)设置新的分隔符模式。Scanner input = new Scanner(System.in);i = input.n原创 2020-11-12 21:45:47 · 165 阅读 · 0 评论