标签:算法
  相互递归就是多个函数互相定义,最常见的就是两个函数,比如f和g,f的定义中用到g,而g的定义中用到f。   相互递归一样有无限递归的可能,最简单的:   f:x->g(x)   g:x->f(x)      给个最简单的没有无限递归的
目录 @(二分搜索法) 例如: int a[]= {1,2,3,4,5,6,7,8}; 一个数组,我们要从中找到5在其中的位置,最简单就是如下: for(int i=0;i<a.length;i++){ if(a[i]==5){
小偷又来了   在搜索的策略(2)——贪心策略中,小偷撬开了一个保险箱,利用贪心法偷走了里面的物品并卖了个好价钱。现在小偷又来了,他光顾了同一个保险箱,保险箱中的物品还和之前一样,有5个物品A,B,C,D,E,它们的体积分别是3,4,7,8,9,价值分别是4,5,10,11,13,只不过每
一、排序引入 1.排序与搜索 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 二、冒泡排序 1.冒泡排序: 冒泡排序(Bubble Sort)是一种简单的排序
这是悦乐书的第319次更新,第340篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第188题(顺位题号是806)。我们要将给定字符串S的字母从左到右写成行。每行最大宽度为100个单位,如果写一个字母会导致该行的宽度超过100个单位,则会写入下一行。给出一个数组宽度,一个
  队列是一种先进先出(FIFO)的线性表。对队列的基本操作有两种: 入队(Enqueue),在表的末端(队尾 tail)插入一个元素;出队(Dequeue),删除或返回在表的开头(队头 head)的元素。本文介绍如何使用数组在 C 语言中实现一个队列。   先创建一个队列结构体,这个结构
这是悦乐书的第320次更新,第341篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第189题(顺位题号是811)。像“discuss.leetcode.com”这样的网站域名由各种子域组成。在顶级,我们有“com”,在下一级,我们有“leetcode.com”,在最低级
一、引言 我们知道,java中泛型排序使用归并排序或TimSort。归并排序以O(NlogN)最坏时间运行,下面我们分析归并排序过程及分析证明时间复杂度;也会简述为什么java选择归并排序作为泛型的排序算法。 二、图解归并排序过程 算法思想:采用分治法: 分割:递归地把当前序列平均分割成两半。
引申问题 在选择电影时,如果热门电影A有 10000 人观众打分,冷门电影B有 100 个人打分,他们的豆瓣评分都是 8.0 分,怎么比较两部电影的好坏?平时我们都有一种感觉,很多人去评价,这个东西就更可信,只有一两个人说好,可能是托,那么感觉上是电影A更好。 再例如《漫威》系列电影中,距离《复仇者
文章目录 A*算法描述 简化搜索区域 概述算法步骤 进一步解释 具体寻路过程 模拟需要更新F值的情况 Lua代码实现 在学习A*算法之前,很好奇的是A*为什么叫做A*。在知乎上找到一个
题目:使用直接排序法将下列数组(从小到大排序)思路:第一次:使用索引值为0的元素与其他位置的元素挨个比较一次,如果发现比0号索引值的元素小的,那么交换位置,第一轮下来最小值被放在了第一位 第二次:将索引值为1的元素与其他位置的元素挨个比较一次,如果发现比1号索引值的元素小的,那么交换位置,第
这是悦乐书的第321次更新,第342篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第190题(顺位题号是819)。给定一个段落和一组禁止词,返回不在禁止词列表中的最常用词。段落中保证至少有一个词没有被禁止,并且答案是独一无二的。禁用单词列表中的单词以小写字母给出,没有标
  欧拉定理和扩展欧拉定理可以解决形如5100000000000000000000等大数幂取模或者求ax mod n=1的大于1的最小x值等一类问题,其中欧拉函数占巨大的重要性,有效的将复杂的大数幂取模问题转化为简单的大数取模和快速幂问题,下面就来介绍一下基本的欧拉定理和扩展欧
1.题目描述 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 2.示例 2.1   输入: [1,2,3,1]   输出: true
题目: 7-2 深入虎穴 (30 分) 著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同
@TOC 和栈一样,队列也是表,但是使用队列的特点是先进先出。 队列模型 队列的基本操作是入队,它是在表的末端插入一个元素,和出队,它是删除在表开头的一个元素 graph LR A[<kbd>入队</kbd>] --> b[队列] b[队列] --> c[<
@TOC 和栈一样,队列也是表,但是使用队列的特点是先进先出。 队列模型 (color{black}{队列的基本操作是入队,它是在表的末端插入一个元素,和出队,它是删除在表开头的一个元素}) graph LR A[<kbd>入队</kbd>] --> b[队列] b[