算法
文章平均质量分 61
少有人走的路上
在分享和批评中成长。
展开
-
学习快速排序的坑里的若干扯淡
写快速排序的人真的蛮多了,但我选择自己写一写,首先是检验自己是否能够用语言准确自己学过的算法,如果不能,那说明我的理解是不到位的。我自己的体会是,算法真的很容易忘。针对这个问题,我还查过不少资料,其中刘未鹏的“知其所以然”系列序列算是最有说服力的。他提出,很多情况下,我们是在记忆算法,而忽略了背后的原理。当然,这个也归因于教材很少去讲算法的来龙去脉。经典算法往往是发明者比较长期的摸索,期间也应该经历原创 2016-01-11 18:48:35 · 1479 阅读 · 1 评论 -
leetcode 20. Valid Parentheses 题解【C++/Java/Python】
leetcode 20的题解原创 2018-08-07 09:40:11 · 313 阅读 · 1 评论 -
leetcode 680. Valid Palindrome II 题解【C++/Java/Python】
leetcode 680 Valid Palindrome II 题解。原创 2018-08-14 07:37:12 · 999 阅读 · 0 评论 -
leetcode 831. Masking Personal Information 题解【C++/Java/Python】
leetcode 831题解【C++/Java/Python】原创 2018-08-09 14:06:03 · 477 阅读 · 0 评论 -
leetcode 539. Minimum Time Difference 题解【C++ & Java & Python】
leetcode题目539. Minimum Time Difference (539. 最小时间差)的题解。原创 2018-07-31 10:05:00 · 495 阅读 · 0 评论 -
霍夫曼数应用之搬水果
题目描述在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果合成一堆。每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和。当然经过 n‐1 次合并之后,就变成一堆了。小明在合并水果时总共消耗的体力等于每次合并所耗体力之和。 假定每个水果重量都为 1,并且已知水果的种类数和每种水果的数目,你的任务是设计出合并的次序方案,使小明原创 2016-06-29 00:18:56 · 454 阅读 · 0 评论 -
leetcode 443. String Compression 题解【C++/Java/Python】
leetcode题目 443. String Compression 的题解原创 2018-08-04 10:52:24 · 1395 阅读 · 3 评论 -
leetcode 877. Stone Game 题解【C++/Java/Python】
题目链接: https://leetcode.com/problems/stone-game/discuss/ https://leetcode-cn.com/contest/weekly-contest-95/problems/stone-game/877. 石子游戏亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石...原创 2018-07-29 14:58:13 · 5190 阅读 · 4 评论 -
北大2018暑期ACM培训练习题02:河中跳房子
题目链接:02:河中跳房子总时间限制: 1000ms 内存限制: 65536kB描述每年奶牛们都要举办各种特殊版本的跳房子比赛,包括在河里从一个岩石跳到另一个岩石。这项激动人心的活动在一条长长的笔直河道中进行,在起点和离起点L远 (1 ≤ L≤ 1,000,000,000) 的终点处均有一个岩石。在起点和终点之间,有N (0 ≤ N ≤ 50,000) 个岩石,每个岩石与起点的距离...原创 2018-07-28 22:05:18 · 401 阅读 · 0 评论 -
动态规划投资问题
//// opt_investment.c// //// Created by focus on 2018/3/18.//#include "opt_investment.h"#include<stdio.h>#include<limits.h>#define ROWS 4//投资的项目数量#define COLS 5//投资的钱数(单位:万元)...原创 2018-03-18 17:31:40 · 2368 阅读 · 0 评论 -
解决问题的技巧分析
晚间和同学散步,我们讨论“如何提升coding能力”,让我联想起早上的素质教育课程。上一次听职慧的讲座是关于时间管理的,很有印象,他们的四字总结深入人心,这次类似。解决问题的步骤,他们有“望、闻、问、切”四字决。我突然想,如何用四字诀来分析我们刚才的问题。首先,提升coding是一个模糊的目标。我们首先要搞清楚当前的状况,然后列出预期达到的目标。为什么要提高呢?是写代码慢还是写不出来呢?如果是慢,原创 2018-02-07 15:31:48 · 416 阅读 · 0 评论 -
初学者写程序
前几天,一个学生问我,看着程序题的答案明白,但是自己写不出来怎么办。其实,即使不仅仅是写程序,我们在学习很多科目时,都会遭遇这样的问题。例如,我们要写一篇“家乡”的作文,不知如何开展,然后我们去看“范文”,也看得很愉快,但是脱离范文,发现自己写依然没有太多头绪。数学中也会有这样的情形,我们不会做一道题,然后看了答案,尽管看答案时内心如明镜,但是自己把答案写出来依然困难。当能回忆起如此总总,你会发现,原创 2016-06-13 14:37:49 · 3753 阅读 · 2 评论 -
KMP算法详解
讲到KMP算法,可以简单谈一下它的来历。这三个字母都各代表着一个专家,是由Knuth,Morris,Pratt几乎统一时期发现的。。其中K是最出名的,它的中文名字叫高德纳。大部分学习计算机的人应该都听过,他写了一部神书叫《计算机程序设计艺术》,网贴上称为TAOCP。大师的神作据说是卖的很多,看得懂的人人很少。大师曾说,看不懂它的书,就不要考虑当程序员了。言归正传,KMP算法,据说还是二十世纪十大算法原创 2016-06-23 01:30:11 · 597 阅读 · 0 评论 -
leetcode 58. Length of Last Word 题解【C++/Java/Python/JS】
58. 最后一个单词的长度 58. Length of Last Word题目:给定一个仅包含大小写字母和空格' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例: 输入: “Hello World” 输出: 5题解:主要思路是从右向左遍历。先找到第一个非空...原创 2018-08-16 13:27:24 · 249 阅读 · 0 评论