![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
__WorldBeautiful
Write the code,change the world
展开
-
LeetCode 907. 子数组的最小值之和
1. 题目描述LeetCode2. 解题方法典型的单调栈使用,使用一个单调递增的栈来保存,栈中存放的是该元素之前包括该元素大于等于该元素的个数,使用一个total来表示以当前元素结尾的连续子数组的和。遍历该数组,不断的更新total,并将total值累加到结果中。例如:数组A = [1,7,5,2,4,3,9],当 i= 6(A[i] = 9)时所有子序列[i, j]的最小值为B = [1,2,2,2,3,3,9],此时栈中存放的数值对是[(1,1),(2,3),(3,2),(9...原创 2020-07-02 22:44:57 · 188 阅读 · 0 评论 -
LeetCode 718. 最长重复子数组
1 题目描述LeetCode2 解题思路一道非常简单的基础dp题目,就是用dp[i][j] 表示数组A元素以i结尾, 数组B以j结尾的长度,(即选i和j位置的元素,不是到索引i和索引j为止),那么转移方程是显而易见的:...原创 2020-07-01 17:15:15 · 152 阅读 · 0 评论 -
LeetCode 677. 键值映射
1、题目描述LeetCode2、解题思路典型的字典树题目,使用其可以快速的匹配前缀操作。每个节点带一个值,如果是单词路径上的节点,权值直接赋值为0即可。代码class Trie { struct TrieNode { int val; TrieNode *child[26]; TrieNode(int x) { val = x; for (int i = 0; i < 26;原创 2020-06-25 12:09:11 · 134 阅读 · 0 评论 -
LeetCode 540. 有序数组中的单一元素
题目描述LeetCode 540解题方法这个 题实际上只检查偶数索引即可,这样,如果偶数索引的后一个和它相同,则必然在其后,否则,就在包括当前元素的以前区间,这种情况下答案不会是该索引后边的那个元素,因为该位置是偶数索引,会导致前边仍然存在奇数个数,与题意只存在一个矛盾。代码class Solution {public: int singleNonDuplicate(vector<int>& nums) { int n = nums.si.原创 2020-06-23 11:20:08 · 137 阅读 · 0 评论 -
LeetCode 报数
题目描述报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"("一个一") , 即11。11被读作"two 1s"("两个一"), 即21。21被读作"one 2", "one 1"("一个二"...原创 2019-05-28 18:15:03 · 280 阅读 · 0 评论 -
LeetCode 最长回文字串
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出 : "bab"注意 : "aba" 也是一个有效答案。示例 2:输入: "cbbd" 输出: "bb"最简单的办法就是进行穷举搜索输入字符串的每一个字串,并进行逐一判断其是否为回文字符串。// cpp.cpp : 此...原创 2019-05-28 19:56:34 · 118 阅读 · 0 评论 -
LeetCode 寻找两个有序数组的中位数
题目描述给定两个大小为 m 和 n 的有序数组nums1和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, ...原创 2019-05-23 19:51:21 · 554 阅读 · 0 评论 -
LeetCode 删除排序数组中的重复项
题目描述删除数组重复项方法使用双指针法,一个快指针j和一个慢指针i,只要j所指数组元素与i相同,j++,跳过所有重复的元素,知道遇到第一个与i位置不同的元素,并将其赋为数组索引为i+1处数组元素的值;重复上述过程,直到j指向数组的末尾。#include<iostream>#include<string>#include<vector>us...原创 2019-05-27 21:24:23 · 114 阅读 · 0 评论 -
LeetCode 2 两数之和
题目描述:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&...原创 2019-05-21 13:06:03 · 103 阅读 · 0 评论 -
LeetCode 整数反转
题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−, − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。...原创 2019-05-24 20:53:18 · 155 阅读 · 0 评论 -
LeetCode 回文数
题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它...原创 2019-05-24 21:30:27 · 122 阅读 · 0 评论 -
sjtu oj 1007 二哥领工资(大数求和)
题目描述二哥当了多年的助教,今天终于要发工资了!二哥正在高兴之际,得知工资是分两部分发放的。第一部分是这学期的工资,另一部分是之前所有学期的工资总和。而领取工资时,出纳员会问二哥,两部分工资加在一起是多少,如果二哥回答错了,就只能领到这个学期的工资之前所有学期的劳动就白费了。二哥从小道消息得知,出纳员是个对数字敏感的人,不能有一点差错,所以二哥需要一个程序来帮他算出精确的工资总和。输入...原创 2019-05-21 21:59:52 · 367 阅读 · 0 评论 -
LeetCode 罗马数字转整数
题目描述罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+...原创 2019-05-25 22:14:48 · 79 阅读 · 0 评论 -
LeetCode 最长公共前缀
题目描述最长公共前缀题解采用十分朴素的办法,直接取出第一个单词,依次将其的每一个字母和后面所有的单词进行比较即可。#include<iostream>#include<string>#include<vector>using namespace std;string longestCommonPrefix(vector<str...原创 2019-05-27 18:19:36 · 109 阅读 · 0 评论 -
LeetCode 合并两个有序链表
题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4分析可以采用新建一个链表的形式,并且从头开始不断比较两个链表中存储值的大小,并将较小的存储到新链表的节点中,然后指针向后移动,重新对两个节...原创 2019-05-27 19:28:01 · 123 阅读 · 0 评论 -
SJTU OJ 1006 复数类
题目描述写一个复数类,实现以下程序主函数中所需要的功能。#include <iostream>using namespace std;class MyComplex{private: double x,y;public: /* Implementation of MyComplex */};int main(){ MyComplex z1;...原创 2019-05-10 10:19:35 · 208 阅读 · 0 评论