力扣
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 · 767 阅读 · 0 评论 -
动态规划——硬币
面试题 08.11. 硬币 硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007) 示例1: 输入: n = 5 输出:2 解释: 有两种方式可以凑成总金额: 5=5 5=1+1+1+1+1 示例2: 输入: n = 10 输出:4 解释: 有四种方式可以凑成总金额: 10=10 10=5+5 10=5+1+1+1+1+1 10=1+1+1+1+1+1+1+1+1+1 求解: class Solution { pub原创 2020-07-12 11:11:16 · 211 阅读 · 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 · 233 阅读 · 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 · 163 阅读 · 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 · 234 阅读 · 0 评论 -
链表小试牛刀
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 求解:原创 2020-06-21 10:45:31 · 145 阅读 · 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 · 145 阅读 · 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 · 625 阅读 · 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 · 316 阅读 · 0 评论
分享