算法
爱上冰激凌
临渊羡鱼不如退而结网
展开
-
卡特兰数
关于卡特兰数,还是学习这位仁兄的博文比较合适:https://blog.csdn.net/Hackbuteer1/article/details/7450250原创 2020-01-06 21:54:32 · 195 阅读 · 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 · 114 阅读 · 0 评论 -
归并排序
我理解的归并排序--------归并,即小块区域的排序,然后依次将小块组合成大块。排序的原则是比较,只是比较的方式不同罢了,归并排序方式如下:(1)选取一个中间位置mid = low + (high -low)/2;(2) 然后分别从数组第一个元素arr[low](标注为fisrt)和中间位置后第一个元素arr[mid+1](标注为last)进行比较;(3)申请临时备用temp[],用于...原创 2019-08-02 00:08:40 · 112 阅读 · 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 · 88 阅读 · 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 · 101 阅读 · 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 · 181 阅读 · 0 评论 -
浅谈算法
最近在研究算法,本文主要谈一下自己最近刷题的感受及对算法的总结。如果只是为了准备面试,算法主要分为一下几类:1.排序和查找2.动态规划问题可拆解成更小粒度的子问题,要求求最优解,更大问题的解决结果依赖于小粒度的子问题,这种问题一般可用动态规划或者递归,递归的时间成本跟高。利用动态规划的思想自底向上解决问题,并保存子问题的结果,并基于子问题的解计算更大问题的解。3.贪婪算法基于上述动态...原创 2019-08-31 17:01:25 · 202 阅读 · 0 评论