探索字符串和数组
软件园里卖煎饼
以文载意,以理铸心
展开
-
探索数组和字符串 螺旋矩阵
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4,8,1...原创 2020-04-07 18:47:45 · 166 阅读 · 1 评论 -
探索数组和字符串 杨辉三角II
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。示例:输入: 3输出: [1,3,3,1]进阶:你可以优化你的算法到 O(k) 空间复杂度吗?本题所说的第三行其实是索引为4的行class Solution {public: vector<int> getRow(int rowIndex) { vector<vector...原创 2020-04-07 17:32:37 · 86 阅读 · 1 评论 -
探索数组和字符串 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321代码实现:cl...原创 2020-04-07 17:19:34 · 148 阅读 · 0 评论 -
探索数组和字符串 杨辉三角I
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]代码实现:class Solution {public: vector<vector<int>> generate(int numRows) { v...原创 2020-04-07 17:13:02 · 92 阅读 · 1 评论 -
探索数组和字符串 实现strStr() KMP nextval算法解决
class Solution {public: void findnextval(string needle,int nextval[]){ int j=0,k=-1; nextval[0]=-1; while(j<needle.length()-1){//此处一定要-1,因为在if中有j++后对next[j]赋值,不减一的话会数组溢...原创 2020-04-01 20:33:02 · 184 阅读 · 1 评论 -
探索数组和字符串 实现strStr() KMP next算法解决(未进行优化)
class Solution {public: void findnext(string needle,int next[]){//求next数组 int j=0,k=-1; next[0]=-1; while(j<needle.length()-1){//此处一定要-1,因为在if中有j++后对next[j]赋值,不减一的话会数组溢...原创 2020-04-01 20:02:46 · 117 阅读 · 0 评论 -
探索数组和字符串 实现strStr() BF算法解决
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba...原创 2020-04-01 16:40:54 · 134 阅读 · 0 评论 -
Leetcode 初级算法:数组9.移动零
移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解题思路:因为不能拷贝额外的数组,所以直接对原数组进行操作,我的想法是,把每一个为0元素进行删除,然后利用pushback在末尾添加一个0即可代码...原创 2020-03-06 13:48:53 · 219 阅读 · 1 评论 -
Leetcode 初级算法:数组1.从排序数组中删除重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums ...原创 2020-03-04 15:48:16 · 132 阅读 · 0 评论 -
Leetcode 初级算法:数组2.旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k...原创 2020-03-06 15:22:04 · 198 阅读 · 1 评论 -
探索数组和字符串 反转字符串中的单词 III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。思路:1.使用一个容器,将没遇到空格之前的字母和符号全部push,然后反向加回到字符...原创 2020-03-31 22:48:58 · 122 阅读 · 0 评论 -
探索数组和字符串 翻转字符串里的单词
*给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: “a good example”输出: “exam...原创 2020-03-31 22:41:25 · 135 阅读 · 0 评论 -
探索数组和字符串 长度最小的子数组(滑动窗口)
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。...原创 2020-03-31 20:24:15 · 293 阅读 · 0 评论 -
探索数组和字符串 移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2...原创 2020-03-31 20:19:13 · 264 阅读 · 0 评论 -
探索数组和字符串 最大连续1的个数
给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。class Solution {public: int findMaxConsecutiveOnes(vector<...原创 2020-03-31 18:34:51 · 149 阅读 · 0 评论 -
探索数组和字符串 两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], targe...原创 2020-03-31 17:07:56 · 102 阅读 · 0 评论 -
Leetcode 初级算法:字符串9.最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解题思路:使用一个char c保存从头相同的字母,并累加到s...原创 2020-03-08 19:56:18 · 145 阅读 · 0 评论 -
Leetcode 初级算法:字符串7.实现 strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba...原创 2020-03-08 14:22:48 · 136 阅读 · 1 评论 -
探索数组和字符串 二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: "10101"思路:1.用aoti转成整型进行进位再转回string,没有考虑到超出INT_MAX的情况所以不可行class Solution {...原创 2020-03-31 15:57:06 · 98 阅读 · 0 评论