![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
爱上冰激凌
临渊羡鱼不如退而结网
展开
-
卡特兰数
关于卡特兰数,还是学习这位仁兄的博文比较合适: https://blog.csdn.net/Hackbuteer1/article/details/7450250原创 2020-01-06 21:54:32 · 189 阅读 · 0 评论 -
两数之和
简介: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 来源:力扣(L...原创 2019-08-08 13:56:52 · 111 阅读 · 0 评论 -
归并排序
我理解的归并排序--------归并,即小块区域的排序,然后依次将小块组合成大块。 排序的原则是比较,只是比较的方式不同罢了,归并排序方式如下: (1)选取一个中间位置mid = low + (high -low)/2; (2) 然后分别从数组第一个元素arr[low](标注为fisrt)和中间位置后第一个元素arr[mid+1](标注为last)进行比较; (3)申请临时备用temp[],用于...原创 2019-08-02 00:08:40 · 103 阅读 · 0 评论 -
快速排序
快速排序: 在数组nums随机总选中一个数做对比nums[index];将数组nums中小于nums[index]的元素放在数组的左侧,将数组中大于nums[index]的元素放在数组的右侧;再分别对小于nums[index]序列和大于nums[index]的序列进行排序。代码如下: #include <stdio.h> #include <vector> #include...原创 2019-08-14 00:36:24 · 86 阅读 · 0 评论 -
插入排序
插入排序和冒泡排序,之前一直特容易混淆。。。。。 插入排序:想起小时候的桥牌,即每摸一张牌,就要将牌插入到已经排好序的序列中。假设输入是数组nums,要将数组升序排列,依次从头至尾对数组执行如下操作: 比较当前元素nums[i]与nums0~numsi-1;若num[i] 大于其中某一个元素j (j的范围0~i-1),先将j~(i-1)位置上的元素依次后移,然后将nums[i]插入至j位置。 对于...原创 2019-08-10 17:04:49 · 98 阅读 · 0 评论 -
删除链表的倒数第N个节点
题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 来源:力扣(LeetCode) 链接:https://leetcode-cn....原创 2019-08-24 18:01:17 · 131 阅读 · 0 评论 -
浅谈算法
最近在研究算法,本文主要谈一下自己最近刷题的感受及对算法的总结。 如果只是为了准备面试,算法主要分为一下几类: 1.排序和查找 2.动态规划 问题可拆解成更小粒度的子问题,要求求最优解,更大问题的解决结果依赖于小粒度的子问题,这种问题一般可用动态规划或者递归,递归的时间成本跟高。利用动态规划的思想自底向上解决问题,并保存子问题的结果,并基于子问题的解计算更大问题的解。 3.贪婪算法 基于上述动态...原创 2019-08-31 17:01:25 · 197 阅读 · 0 评论