JAVA--数据结构与算法
JAVA--数据结构与算法
如我般骄傲
学习
展开
-
Java基础-Java中的集合框架
一、Java集合框架基础接口一.CollectionCollection使集合框架的基础接口之一,一个集合代表一组对象,这些对象即为集合的元素。Java平台不提供这个接口的任何直接实现。二.Set一个不包含重复元素的集合三.List一个可以包含重复元组的集合四.MapMap是一个将key映射到value的对象,一个Map不能包含重复的Key,每个Key只能映射一个Value五.Queue队列结构的实现六.Iterable基础接口,可以通过for-each语法进行遍历。二、List的原创 2021-11-18 23:50:20 · 4085 阅读 · 0 评论 -
判断一个数是不是2的N次方
n > 0 && (n & (n-1) == 0 )原创 2021-07-07 16:16:22 · 134 阅读 · 0 评论 -
动态规划学习
动态规划太难了,学习数据结构与算法之美,虽然我理解了动态规划的思路,但是还是缺少一些实际的案例分析。一、动态规划先掌握基础数据结构和算法,再来谈动态规划。动态规划不仅名字听起来十分高级,它也的确是一种高级的解决问题的思想。为了更好地理解这个思想,掌握基础数据结构就显得尤为重要了,比如高维数组这样的数据结构,就经常出现在动态规划解法当中。其次是算法,像是递归、搜索和迭代这些常见的算法,都会作为工具在动态规划解法中使用。二、初识动态规划一.硬币找零问题:从贪心算法说起二. 暴力递归:当贪心失效了怎原创 2021-06-11 14:12:20 · 191 阅读 · 0 评论 -
数据结构与算法之美-101|动态规划
一、初识动态规划动态规划比较适合用来求解最优问题,比如求最大值、最小值等等。它可以非常显著地降低时间复杂度,提高代码的执行效率。一.0-1 背包问题对于一组不同重量、不可分割的物品,我们需要选择一些装入背包,在满足背包最大重量限制的前提下,背包中物品总重量的最大值是多少呢?1、递归树假设背包的最大承载重量是 9。有 5 个不同的物品,每个物品的重量分别是 2,2,4,6,3。回溯求解过程,用递归树画出来,就是下面这个样子:这个递归树的意思是,对于同一节点,左侧表示不加入,右侧表示加入。F(0原创 2021-06-08 17:17:16 · 352 阅读 · 0 评论 -
判断是否为质数
/** * 判断是否为素数/质数的常规方法 * 判断n是否为素数,根据定义直接判断从2到n-1是否存在n的约数即可 * @param num * @return */public static boolean isPrimeNormal(int num) { for(int i=2; i<num; i++) { if(num%i == 0) { return false; } } return true;}原创 2021-05-10 12:45:57 · 140 阅读 · 0 评论 -
求最大公约数(欧几里得算法)
public class GCD { public static void main(String[] args) { gcd(25,10); } public static int gcd(int m, int n) { //调整m和n的顺序,M>N if (m < n) { int k = m; m = n; n = k; }原创 2021-04-28 17:25:36 · 143 阅读 · 0 评论