算法题C/C++
cococer
一起学习,共同努力
展开
-
leetcode——45.跳跃游戏II(C++)
题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。假设你总是可以到达数组的最后一个位...原创 2020-05-04 17:31:24 · 322 阅读 · 0 评论 -
常见的排序算法(中等篇)
在本篇,我们介绍四种排序算法,分别是:归并排序、快速排序、希尔排序和堆排序。(以下代码均用C++实现)预知:以下代码中用到的swap函数的定义头文件是#include<algorithm>四、堆排序: 堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或者大于)它的父节点...原创 2020-04-02 21:22:43 · 204 阅读 · 0 评论 -
常见的排序算法(简单篇)
在本篇,我们介绍三种排序算法,分别是:冒泡排序、选择排序和插入排序。(以下代码均用C++实现)一、冒泡排序: 冒泡排序(英语:Bubble Sort)又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。较相邻的元素。如果第一个比第二个大,就交换他们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做...原创 2020-03-31 10:47:14 · 476 阅读 · 0 评论 -
约瑟夫环问题(巧解)
巧解约瑟夫环问题(C/C++)问题描述:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。分析以上被杀掉的顺序:第一轮:[1,2,3,4,5,6] 杀死序号为5的人,下一轮从序号为6的人开始;第二轮:[1,2,3,4,6] 杀死序号为4的人,下一轮从序号为6的人开始;第三轮:[1,2,3,6] ...原创 2020-03-30 16:17:46 · 622 阅读 · 0 评论