算法题库
记录我认为值得回顾的经典算法题解
WhataNerd
欢迎访问:danght.github.io
展开
-
[LeetCode] 542. 01 矩阵
题目传送问题描述给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。示例 1: 输入:0 0 0 0 1 0 0 0 0输出:0 0 0 0 1 0 0 0 0示例 2: 输入:0 0 0 0 1 0 1 1 1输出:0 0 0 0 1 0 1 2 1注意: 给定矩阵的元素...原创 2018-04-21 23:34:16 · 2838 阅读 · 0 评论 -
[LeetCode] 404. 左叶子之和
传送门题目描述计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24我的想法我是利用递归解决这道题的,通过递归思想,我们可以划分子问题: sumOfLeftLeaves(root) = sumOfLeftLeaves(root.l...原创 2018-03-31 21:56:46 · 972 阅读 · 0 评论 -
[LeetCode] 94. 中序遍历二叉树
传送门题目描述给定一个二叉树,返回其中序遍历。例如: 给定二叉树 [1,null,2,3], 1 \ 2 / 3返回 [1,3,2].说明: 递归算法很简单,你可以通过迭代算法完成吗?我的想法题中说明了要求使用迭代法使用一个栈来存储二叉树节点,根据中序遍历的规则,我们可以推算出这样的规律: 1. 将当前非空节点...原创 2018-03-31 12:30:48 · 2128 阅读 · 0 评论 -
[LeetCode] 409. 最长回文串
题目传送问题描述给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意: 假设字符串的长度不会超过 1010。示例 1:输入: “abccccdd”输出: 7解释: 我们可以构造的最长的回文串是”dccaccd”, 它的长度是 7。我的想法这道...原创 2018-03-29 15:38:16 · 1586 阅读 · 1 评论 -
PAT(甲)1104. Sum of Number Segments (20)
原题链接:1104. Sum of Number Segments我的思路:这是一道简单题,但看题目我们可以直观的想到用 for 循环暴力求解#include<stdio.h>int main(){ int n; double sum = 0; scanf("%d", &n); double nums[n]; ...原创 2018-03-11 23:03:33 · 312 阅读 · 0 评论 -
PAT(甲)1003. Emergency(25)
原题连接:1003. Emergency我的思路:利用 DFS(深度优先搜索)从起点开始找路(同时记录路径长度和经过的各个节点)每找到一条可达路径,先判定这条路径的长度如果大于当前最短路则直接跳过如果等于当前最短路,则查看该路上可以集结几只队伍,如果队伍数大于当前最多队伍数,则更新,否则跳过如果小于当前最短路,则更新当前最短路,并更新当前最多队伍import j...原创 2018-03-10 16:55:23 · 331 阅读 · 0 评论 -
[LeetCode] 58.Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ’ ‘, return the length of last word in the string.If the last word does not exist, return 0.给定一个字符串s由大/小写字母和空空格字符...原创 2018-01-30 16:11:19 · 346 阅读 · 0 评论 -
[LeetCode] 38.Count and Say
题目来自 LeetCodeThe count-and-say sequence is the sequence of integers with the first five terms as following:1112112111112211 is read off as “one 1” or 11. 11 is read off as “two 1s” or...原创 2018-01-29 23:56:23 · 329 阅读 · 0 评论 -
[LeetCode] 70.爬楼梯
如果爬楼梯可以一次爬 1 级或是一次爬 2 级 输入:楼梯的总级数 输出:一共可能有多少种爬法? 难度:简单例: 输入:2 输出:2 ① 1 + 1 ② 2输入:3 输出:3 ① 1 + 1 + 1 ② 2 + 1 ③ 1 + 2答案: 这道题可以使用动态规划的思想解决class Solution { static int[] results...原创 2017-11-28 22:05:22 · 818 阅读 · 0 评论 -
算法训练 筛选号码
问题描述 有n个人围成一圈,顺序排号(编号为1到n)。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子。从下一个人开始继续报数,直到剩下最后一个人,游戏结束。 问最后留下的是原来第几号的那位。 举个例子,8个人围成一圈: 1 2 3 4 5 6 7 8 第1次报数之后,3退出,剩下: 1 2 4 5 6 7 8 (现在从4开始报数) 第2次报数之后,原创 2017-03-10 23:00:38 · 765 阅读 · 0 评论 -
算法训练 未名湖边的烦恼
问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法) 输入格式 两个整数,表示m和n 输出格式原创 2017-03-10 23:21:37 · 506 阅读 · 0 评论 -
基础练习 回形取数
问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2 3原创 2017-03-10 23:27:29 · 1432 阅读 · 1 评论 -
基础练习 Huffuman树
问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。 2. 重复步骤1,直到{pi}中原创 2017-03-10 23:38:41 · 507 阅读 · 0 评论 -
算法训练 区间k大数查询
问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式 第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式 总共输出m行,每行一个数,表示询问的答案。 样例输入 5 1原创 2017-03-26 14:41:34 · 672 阅读 · 0 评论 -
基础练习 Sine之舞
问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。 不妨设 An=sin(1–sin(2+sin(3–sin(4+…sin(n))…) Sn=(…(A1+n)A2+n-1)A3+…+2)An+1 FJ想让奶牛们计算Sn的值,请你帮助FJ打印原创 2017-03-26 14:44:41 · 436 阅读 · 0 评论 -
算法训练 2的次幂表示
问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0 现在约定幂次用括号来表示,即a^b表示为a(b) 此时,137可表示为:2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2表示) 3=2+2^原创 2017-03-31 17:54:51 · 407 阅读 · 0 评论 -
算法训练 输出米字形
根据输入的正整数n (1 米字形由一个(2n-1)*(2n-1)的矩阵组成,矩阵包含从大写A开始的n个字母 例如:n=3时,包含A,B,C;n=4时,包含A,B,C,D。 矩阵的正中间为n个字母中字典序最大的那个,从这个字母开始,沿着西北、正北、东北、正西、正东、西南、正南、东南八个方向各有一条由大写字母组成的直线。并且直线上的字母按字典序依次减小,直到大写字母A。 矩阵的其它位原创 2017-04-01 13:13:12 · 1744 阅读 · 1 评论