![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣
yuabcxiao
这个作者很懒,什么都没留下…
展开
-
输入若干行字符串(回车看做空字符串)getline
#include<bits/stdc++.h>using namespace std;bool isValid(string s) { vector<char> v; for(int i=0;i<s.length();i++) { if(s[i]=='(') { v.push_back(')'); }原创 2020-09-15 21:06:39 · 678 阅读 · 0 评论 -
动态规划——硬币
面试题 08.11. 硬币硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)示例1:输入: n = 5输出:2解释: 有两种方式可以凑成总金额:5=55=1+1+1+1+1示例2:输入: n = 10输出:4解释: 有四种方式可以凑成总金额:10=1010=5+510=5+1+1+1+1+110=1+1+1+1+1+1+1+1+1+1求解:class Solution {pub原创 2020-07-12 11:11:16 · 139 阅读 · 0 评论 -
动态规划求解 删除与获得点数
740. 删除与获得点数给定一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入: nums = [3, 4, 2]输出: 6解释:删除 4 来获得 4 个点数,因此 3 也被删除。之后,删除 2 来获得 2 个点数。总共获得 6 个点数。示例 2:原创 2020-07-07 22:27:05 · 179 阅读 · 0 评论 -
旋转图像
给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。求解如下:转置+镜像class Solution {public: void rotate(vector<vector<int>>& matrix) { int n=matrix.size(); for(int i=0;i<n;i++) {原创 2020-06-28 18:16:58 · 100 阅读 · 0 评论 -
动态规划和深度优先之括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]动态规划求解:class Solution {public: void getAns(string str, int l, int r, vector<string>& ans){ if(l == 0 && r =原创 2020-06-21 12:12:56 · 165 阅读 · 0 评论 -
链表小试牛刀
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4求解:原创 2020-06-21 10:45:31 · 98 阅读 · 0 评论 -
队列小试牛刀
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].求解:#include <iostream> // std::cin, std::cout#include <queue> // std::queue#include&原创 2020-06-18 23:45:01 · 95 阅读 · 0 评论 -
动态规划思想降低程序时间复杂度
给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。暴力求解:#include<iostream>#include<vector>#include<algorithm>using namespace std;int maxScoreS原创 2020-06-17 11:33:09 · 546 阅读 · 0 评论 -
使用双指针思想处理数组求解过程,降低时间复杂度
给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。暴力解法#include <iostream>#include<algorithm>#include<vector>using namespace std;int m原创 2020-06-17 11:14:47 · 265 阅读 · 0 评论