算法
文章平均质量分 87
imSunLight
这个作者很懒,什么都没留下…
展开
-
算法之排序
排序 排序常见的可以分为三大类 冒泡排序、选择排序 插入排序、希尔排序 归并排序、快速排序 因为排序中涉及到很多的元素比较、元素交换位置、元素打印等,所以方便起见,先封装一个工具类,如下所示: public class Utils { /** * 打印数组 */ public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) {原创 2021-02-18 11:13:32 · 238 阅读 · 0 评论 -
算法之链表
链表 链表的遍历方式 首先先简单的创建一个链表123,如下所示: ListNode head = new ListNode(1); ListNode twoNode = new ListNode(2); ListNode threeNode = new ListNode(3); head.next = twoNode; twoNode.next = threeNode; 方法一 使用for循环: for (ListNode node = he原创 2020-12-25 18:45:30 · 145 阅读 · 1 评论 -
算法之动态规划
动态规划&递归 摘自网上的一段对动态规划的定义: 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。 遇题分析: 一般对于求最优解的,都可以想到动态规划去解决 很多问题既可以使用自顶向下的递归去解,也可以使用自底向上的动态规划去解决 leetcode的一些题目: leetcode 70. 爬楼梯问题,描述如下: 假设你正在爬楼梯。原创 2020-12-25 18:41:36 · 139 阅读 · 0 评论