![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法编程
文章平均质量分 79
_yannnnn
你可以再努力一点...
展开
-
LeetCode_medium_332. Reconstruct Itinerary
最近在刷Leetcode,希望以此来记录自己编写代码的一些想法。 一开始的思路: 从"JFK"开始找,得到与起点相连的终点,并且字母序最小,并将终点作为下一个起点,并将已经用完的tickets记录删除,继续找下一个终点,直至tickets都用完。 出现的bug在于:字母序最小的那个顺序可能会无解。 例如:[A,C],[A,D],[D,A] 规定从A开始。 如果按照我的算法:只能算到原创 2016-04-26 08:52:54 · 241 阅读 · 0 评论 -
kmp算法介绍
kmp算法 问题描述 常规思路 KMP算法 kmp算法 问题描述 给出两个字符串,一个为主字符串,一个为子串,希望判断主字符串是否包含子串,并且找到子串在主字符串第一次出现的位置。如果不存在则返回-1 输入: “ababababaa” “ababaa” 输出 4 所有的做法的第一步肯定是遍历字符串,下面通过一个示意图来表示 一旦字符串和子串匹配不上...原创 2018-06-12 16:31:33 · 874 阅读 · 0 评论 -
凑硬币问题
题目描述 给出任意一堆硬币,然后我们需要凑到k元钱,问一共有多少种凑法。 输入格式 t length target coin1 coin2 coin3… 输出格式 count 举个例子,现在有1元、2元、5元硬币,要凑成5元,一共有多少种方式? 输入:1 3 5 1 2 5 输出:4 我们一看就能知道结果: 1+1+1+1+1 1+1+1+2 1+2+2 5 一...原创 2018-04-24 11:39:04 · 2839 阅读 · 1 评论 -
树的遍历
数的遍历有3种,分别是前序遍历,中序遍历和后序遍历。 前序遍历:根左右 中序遍历:左根右 后序遍历:左右根 分享下我怎么记忆的,只需要记得第一个字表示根的位置,就不会搞混了。另外还要知道,如果只知道前序和后序,是不能唯一确定一棵树的。 对于每种遍历,又存在递归式和非递归式。递归式当然好实现,只要简单的几行代码就可以实现;而非递归式呢,需要花点功夫,另外非递归式的后序遍历还有点小麻烦。下面...原创 2018-04-04 21:39:39 · 177 阅读 · 0 评论 -
计算时间复杂度
计算时间复杂度 public static void main(String []args){ int n = 100; for(int i=0;i<n;i++){ cout<<"Test"<<endl; } } 语句 运行次数 int n = 100 1 int i=0 1 ...原创 2018-03-17 12:20:07 · 262 阅读 · 0 评论 -
排序算法总结
外部排序 内部排序 插入排序 选择排序 冒泡排序 希尔排序 归并排序 快速排序 堆排序 基数排序 大数据排序: 外部排序 为什么需要外部排序 指的是待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中需要对外存进行访问的排序过程。 定义 外部排序指的是大文件的排序,即待排序的记录存储在外部存储器上,在排序过程中需进行多次的内、外存之间的交换。 怎么...原创 2018-03-15 21:19:40 · 214 阅读 · 0 评论 -
leetcode_292_Nim Game
两个人在进行游戏——取石子,每次可以取1-3颗石子,给出n个石子,判断第一个人能否获胜……比如说 如果当前有四颗石子,第一个人无论取多少颗石子都会输,因为第二个人能够取光石子。仔细思考其实很简单,关键在于 4.如果大于4颗石子,第一个取的人第一次取走n/4颗石子第二个取得人第一次取走k1颗石子(k1=1,2,3)第一个取得人第二次取走4-k1颗石子第二个取得人第二次取走k2颗石子(k2=1,2,3...原创 2018-03-02 16:45:20 · 242 阅读 · 0 评论 -
LeetCode_Basic Calculator(Ⅰ)、(Ⅱ)
Basic Calculator 这题看起来很简单,但其实要注意的是虽然只有加减法,计算顺序不是很重要,但是括号也不是没有意义的,如果括号前面是个减法,那么括号里的符合是需要反转的。 处理好这一点那么这题应该就没什么问题了。 如果把括号里的结果当成一个数那么整个算式就变成顺序了加减法了,而实际上括号里的实际上也是一个顺序的加减法而已。 对于顺序的加减法我们只需要顺序累加即可:res原创 2016-04-29 15:17:19 · 316 阅读 · 0 评论 -
Leetcode_347_Top K Frequent Elements
这一题主要是让我们找出前k个最频繁出现的数字。比较简单的想法是先统计一遍所有数字出现的频率,然后根据频率来降序排列,最后输出前k个。说起来还挺容易实现的,但可能还是STL的map,vector用的不够熟练,因此也处理了好长时间T T另外本次还会讲到vector的sort函数,我们可以自定义一个规则来实现这个sort函数。 class Solution { public: static bool原创 2016-05-04 07:57:42 · 342 阅读 · 0 评论 -
LeetCode_ House Robber(Ⅰ)、(Ⅱ)、(Ⅲ)
本次做的三道题都是动态规划(dynamic programming)的,属于入门级别,通过三个题,层层递进,加深我对于这些动态规划的题的思考。第一题是直线型的动态规划,第二题是环形的动态规划,第三题是树状动态规划。原创 2016-04-26 23:45:40 · 427 阅读 · 0 评论 -
Best Time to Buy and Sell Stock系列分析
121.&amp;amp;nbsp;Best Time to Buy and Sell Stock https://leetcode.com/problems/best-time-to-buy-and-sell-stock/description/ 题目描述:只能进行一次交易 那么我们找到差值最大的两个数,并且后面的值比较大即可。 122.&amp;amp;nbsp;Best Time to Buy and Sell S...原创 2018-06-21 19:28:08 · 849 阅读 · 1 评论