
算法
温暖的秋裤
stay hungry
展开
-
二叉树的各种遍历方式实现(Java)
二叉树定义如下:class TreeNode{ public int val; public TreeNode left; public TreeNode right; TreeNode(int x) { val = x; } } 一、前中后序遍历1.递归实现/*** 前序遍历* 从根节点开始,先遍历左子树,后遍历右子树*/public static void preOrderTraveral(TreeNode...原创 2020-07-31 22:03:12 · 336 阅读 · 1 评论 -
结合题目学会单调栈
一、题目描述根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用0 来代替。例如,给定一个列表temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是[1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是[1, 30000]。每个气温的值的均为华氏度,都是在[30, 100]范围内的整数。来源:力扣(LeetCode)链接...原创 2020-06-23 00:41:21 · 145 阅读 · 0 评论 -
二分查找算法及拓展
目录一、概念及分析二、二分查找实现(Java)三、进阶例题3.1 题目描述3.2 题目分析3.3 题目解答一、概念及分析二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。比如 序列 1、5、13、15、17。时间复杂度 O(logn) 空间复杂度O(n)时间复杂度分析:二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x...原创 2020-06-22 23:14:47 · 397 阅读 · 0 评论 -
揭秘快速乘算法
目录参考链接1参考链接2一、什么是快速乘算法二、快速乘算法的优点三、用一个例子揭秘快速乘四、快速乘算法实现(C++版)五、趁热打铁——聊聊快速幂算法参考链接1参考链接2一、什么是快速乘算法 当两个大数进行相乘进行取模(a*b%c)时,运算a*b可能会爆long long的范围(如果会python的同学做这种题目的时候或许不用为此困扰),这时候就需要用到 快速乘 算法解决算术溢出的问题。二、快速乘算法的优点1.乘法容易爆范围,但是由于过程中不断取...原创 2020-06-02 23:30:20 · 2843 阅读 · 2 评论 -
算法基础
一、快速乘与快速幂原创 2020-06-02 11:20:00 · 247 阅读 · 0 评论 -
算法学习
1.动态规划2.回溯3.递归4.分治5.贪心原创 2020-03-20 14:30:08 · 115 阅读 · 0 评论 -
三道题套路解决递归问题
原博客地址:三道题套路解决递归问题递归解题三部曲何为递归?程序反复调用自身即是递归。我自己在刚开始解决递归问题的时候,总是会去纠结这一层函数做了什么,它调用自身后的下一层函数又做了什么…然后就会觉得实现一个递归解法十分复杂,根本就无从下手。相信很多初学者和我一样,这是一个思维误区,一定要走出来。既然递归是一个反复调用自身的过程,这就说明它每一级的功能都是一样的,因此我们只需要关注一...原创 2020-03-20 14:27:37 · 282 阅读 · 0 评论