算法
雒翼
南大菜鸡一枚
励志于FIN-TECH
展开
-
扩充字符串使其成为最短回文串
题目描述: 给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。 示例 1: 输入: “aacecaaa” 输出: “aaacecaaa” 示例 2: 输入: “abcd” 输出: “dcbabcd” 思路: 我们需要在给定的字符串 ss 的前面添加字符串 s,得到最短的回文串。这里我们用 s’+s表示得到的回文串。显然,这等价于找到最短的字符串 s’ 使得 s’+s 是一个回文串。 由于我们一定可以将 ss 去除第一个字符后得到的字符串反序地添加在原创 2020-08-29 15:20:48 · 719 阅读 · 0 评论 -
回文数 int
题目: 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 你能不将整数转为字符串来解决这个问题吗? 方法一:反转一半数字 思路 映入脑海的第一个想法是将数字转换为字符串,并检查字符串是否为回文。但是,这需要额外的非常量空间来创建问题描述中所不允许的字符串。 第二个想法是将数字本身反转,然后将反转后的数字与原始数字进行比较,如果它们是相同的,那么这个数字就是回文。 但是,如果反转后的数字大于 \text{int.MAX}int.MAX,我们将遇到整数溢出问题。 按照第二原创 2020-06-10 09:34:56 · 223 阅读 · 0 评论 -
二分搜索:在D天内送达包裹的能力
问题: 传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。 返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。 示例 示例 1: 输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5 输出:15 解释: 船舶最低载重 15 就能够在 5 天内送达所有包裹,如下所示: 第 1 天:1, 2, 3, 4, 5原创 2020-06-08 21:37:41 · 175 阅读 · 0 评论 -
用vector创建二维数组
1 vector二维数组的创建和初始化 vector vec(10,90); //将10个一维动态数组初始为90 vector<vector > vec(row,vector(col,0)); //初始化row * col二维动态数组,初始化值为0 2 获取一维数组的长度 int size = vec.size(); 3 获取二维数组的长度 int size_row = vec.size(); //获取行数 int size_col = vec[0].size(); //获取列数 定义一个行列原创 2020-06-05 18:57:33 · 870 阅读 · 0 评论 -
最长回文子串 c++
解法 1: 将字符串 s 反转得到字符串 rev,再求他们的最长公共子串,再判断该最长公共子串是否就是我们要找的最长回文子串。 class Solution { public: string longestPalindrome(string s) { if(s.length()==1) return s;//大小为1的字符串必为回文串 string rev=s;//rev存放s反转结果 string res;//存放结果 std::re原创 2020-06-05 18:50:36 · 863 阅读 · 0 评论 -
LeetCode481.神奇字符串
神奇字符串 神奇的字符串 S 只包含 ‘1’ 和 ‘2’,并遵守以下规则: 字符串 S 是神奇的,因为串联字符 ‘1’ 和 ‘2’ 的连续出现次数会生成字符串 S 本身。 字符串 S 的前几个元素如下:S = “1221121221221121122 …” 如果我们将 S 中连续的 1 和 2 进行分组,它将变成: 1 22 11 2 1 22 1 22 11 2 11 22 … 并且每个组中 ‘1’ 或 ‘2’ 的出现次数分别是: 1 2 2 1 1 2 1 2 2 1 2 2 … 你可以看到上面的出现原创 2020-06-02 21:50:10 · 396 阅读 · 0 评论 -
鸡蛋掉落/玻璃球与楼层高度 动态规划
动态规划 解决鸡蛋掉落问题原创 2020-02-25 18:59:17 · 367 阅读 · 1 评论