算法思想
kangin0914
一只菜鸟,分享一下我的学习笔记
一口吃不成一个胖子,得一点一点来
打怪升级,变得优秀起来
展开
-
算法思想学习--贪心算法
定义原创 2020-04-04 14:17:25 · 147 阅读 · 0 评论 -
算法思想学习--分治
分治算法 我的定义:分治算法,顾名思义就是分而治之,就是我们将问题分开去分析,让问题变得容易解决。 例1: 最大子列和问题 问题描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶: 如果你已经...原创 2020-03-28 19:02:35 · 145 阅读 · 0 评论 -
算法思想学习--递归
定义 递归给我的感觉就是,非常简洁,简单易懂 百度得到: 在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循...原创 2020-03-23 20:50:15 · 127 阅读 · 0 评论 -
算法思想学习--递推
分为两类: 顺推法:从已知条件出发,逐步推算出要解决问题的方法。 逆推法:从已知结果出发,用迭代表达式逐步推算出问题开始的条件,即顺推法的你过程。 来举两个例子: 题目 (顺推法) 斐波那契数列(Fibonacci sequence),又称黄金分割数列 求斐波那契数列的第 n 项。 public class Fibonacci { public int Fn(int n) { int ...原创 2020-03-21 19:06:09 · 242 阅读 · 0 评论 -
算法思想学习--枚举
枚举算法简单粗暴,他暴力的枚举所有可能,尽可能地尝试所有的方法。虽然枚举算法非常暴力,而且速度可能很慢,但确实我们最应该优先考虑的!因为枚举法变成实现最简单,并且得到的结果总是正确的。 在实际问题中, 有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月, 一个班每周有六门课程等等。如果把这些量说明为整型, 字符型或其它类型显然是不妥当的。 为此,Java提供了一种称...原创 2020-03-21 10:22:14 · 237 阅读 · 0 评论 -
算法思想学习---简述
刷题要先打好数据结构和算法思想的基础 我查阅资料了解到有八大算法思想: 枚举 递推 递归 分治 贪心 试探法 动态迭代 模拟算法 为了学习这几种算法思想,我决定举几个例子进行学习。 ...原创 2020-03-21 09:49:24 · 180 阅读 · 0 评论