
算法
跨越七海的风丶
这个作者很懒,什么都没留下…
展开
-
链表 —— 快慢指针
心血来潮...问题:求一个链表倒数第k个数的值?方法:用快慢指针。既然要求倒数第k个值,就先设两个结点,第一个结点先走k步,第二个结点在头结点处,当第一个结点走到头时,第二个结点的值就是倒数第k个数的值!结点说明:public class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}算法:public int kthToLast(ListNode head原创 2020-06-03 09:18:17 · 254 阅读 · 0 评论 -
高效排序方法之一 —— 归并排序
一、归并排序归并排序属于分治算法的一种,所谓分而治之,本质就是讲一个大规模的问题分解为若干个规模较小的相同子问题。大致过程如下:将待排序元素分成大小大致相同的两个子序列 对两个子序列进行排序 将排好序的有序子序列进行合并,得到最终的有序序列二、算法图解 用一张图就可以对这个过程有一个清晰的了解了~通过...原创 2020-02-29 21:29:38 · 460 阅读 · 0 评论 -
二分搜索法
一、问题描述:给定n个元素,这些元素是有序的,从数组中查找特定的元素x。个人觉得二分法搜索是分治法里面最简单的一个搜索算法了,就是设置一个下界low和上界high,然后再设一个指针mid ( mid=(low+high)/2 ),然后随着每次搜索mid会在两个区间之间( [low,mid-1] 和 [mid+1,high] )进行移动,对应的,low或者high也要相应地改变位置。**要注意这...原创 2020-02-27 17:57:14 · 553 阅读 · 0 评论 -
贪心算法 —— 背包问题
一、问题描述:有一堆宝物,用车去装载,一次运完(不能超过车的最大承重),要求运走价值高的宝物这里因为物体是可分割的,所以我采用贪心算法。由题目可以得出,应该选取性价比最高的物品,即:价值/重量要最大才行。所以思路就出来了,每次选择性价比高的物品,如果其重量小于车的载重就装,如果大于就分割,部分装入。话不多说,直接上代码。二、代码如下:#include <iostream>#...原创 2020-02-24 10:28:42 · 3451 阅读 · 0 评论