随笔分类 - 编程
摘要:在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。 返回可以通过分割得到的平衡字符串的最大数量。 示例 1: 输入:s = "RLRRLLRLRL" 输出:4 解释:s 可以分割为 "RL", "RRLL", "RL", "R
阅读全文
摘要:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 示例 1: 输入: s = "abcdefg", k = 2输出: "cdefgab"示例 2:
阅读全文
摘要:给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。 示例 1: 输入:address = "1.1.1.1"输出:"1[.]1[.]1[.]1"示例 2: 输入:address = "255.100
阅读全文
摘要:给你一个字符串 s ,请你根据下面的算法重新构造字符串: (1)从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 (2)从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 (3)重复步骤 2 ,直到你没法从 s 中选择字符。 (4)从 s 中
阅读全文
摘要:map/multimap基本概念 Map的特性是,所有元素都会根据元素的键值自动排序。 Map所有的元素都是pair,同时拥有实值和键值,pair的第一元素被视为键值,第二元素被视为实值,map不允许两个元素有相同的键值。 我们不可以通过map的迭代器改变map的键值, 因为map的键值关系到map
阅读全文
摘要:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1]输出: 1示例 2: 输入: [4,1,2,1,2]输出: 4 方法 1:集合操作算法
阅读全文
摘要:4的幂 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。 示例 1: 输入: 16输出:yes示例 2: 输入: 5输出: no 进阶:你能不使用循环或者递归来完成本题吗? 分析: 联想到如何确定一个数是否是2的幂,这里有一个可行的方法:假设这个数为x 则只要判断
阅读全文
摘要:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()"输出: true示例 2: 输入: "()[]{}"输出
阅读全文
摘要:题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。 例如:n=7,k=3,下面三种分法被认为是相同的。 1,1,51,5,15,1,1 问有多少种不同的分法。 输入格式 n,k (6<n≤200,2≤k≤6) 输出格式 1个整数,即不同的分法。 输入输出样例 输入 #1
阅读全文
摘要:描述已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。比如,如下4 * 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8这个子矩阵的大小是15。输入输入是一个N * M的矩阵
阅读全文
摘要:题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大。 输入格式 第一行是一个正整数N,表示了序列的长度。 第二行包含N个绝对值不大于10000的整数A_i,描述了这段序列。 输出格式 一个整数,为最大的子段和是多少。子段的最小长度为11。 输入输出样例 输入 #1 7 2 -4 3 -1
阅读全文
摘要:最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 思路: 代码: void lenthOfLIS(vector<int> nums){
阅读全文
摘要:题目描述 N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T_1<...<T_i>T_{i+1}>…>T_K(1≤i≤K
阅读全文
摘要:题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高
阅读全文
摘要:基本思想 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划
阅读全文
摘要:输入一组勾股数 a,b,c ,用分数格式输出其最小锐角的正弦值。(要求是最简分数) 输入格式 一行,包含三个数,即勾股数 a,b,c(任意顺序)。 输出格式 一行,包含一个数,即最小锐角的正弦值。 输出时每行末尾的多余空格,不影响答案正确性 样例输入 3 5 4 样例输出 3/5 知识点: 欧几里德
阅读全文
摘要:经过思考蒜头君终于解决了怎么计算一个迷宫的最短路问题,于是蒜头君找到一个新的迷宫图,来验证自己是否真的会计算一个迷宫的最短路。 为了检验自己计算的是否正确,蒜头君特邀你一起来计算。 输入格式 第一行输入两个整数 n 和 m,表示这是一个 n×m 的迷宫。 接下来的输入一个 n 行 m 列的迷宫。其中
阅读全文
摘要:题目 :蒜头君在你的帮助下终于逃出了迷宫,但是蒜头君并没有沉浸于喜悦之中,而是很快的又陷入了思考,从这个迷宫逃出的最少步数是多少呢?输入格式第一行输入两个整数 n 和 m,表示这是一个 n×m 的迷宫。接下来的输入一个 n 行 m 列的迷宫。其中 ‘S’表示蒜头君的位置,’‘表示墙,蒜头君无法通过,
阅读全文
摘要:一天蒜头君掉进了一个迷宫里面,蒜头君想逃出去,可怜的蒜头君连迷宫是否有能逃出去的路都不知道。 看在蒜头君这么可怜的份上,就请聪明的你告诉蒜头君是否有可以逃出去的路。 输入格式 第一行输入两个整数n 和 m,表示这是一个 n×m 的迷宫。 接下来的输入一个 n 行 m 列的迷宫。其中 'S' 表示蒜头
阅读全文
摘要:马在中国象棋以日字形规则移动。 请编写一段程序,给定 n×m大小的棋盘,以及马的初始位置 (x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。 输入格式 第一行为整数 T(T<10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置
阅读全文