力扣刷题记录2

news/2024/11/18 4:23:55/

376.摆动序列

感觉没什么,就是检测拐点

class Solution {
public:int wiggleMaxLength(vector<int>& nums) {//0 is equal, //1 is up,//2 is down//-1 is uninializeint is_up = -1;vector<int> reslut;if(nums.size() < 1){return nums.size();}int fisrt = nums.at(0);for(int i=0; i<nums.size(); i++){int current = nums.at(i);int next;if(i + 1 < nums.size()){next = nums.at(i+1);}else{break;}if(is_up == -1){if(next > current){is_up = 1;reslut.push_back(fisrt);}if(next < current){is_up = 2;reslut.push_back(fisrt);}}if(is_up == 1){if(next >= current){continue;}else{reslut.push_back(current);is_up = 2;}}if(is_up == 2){if(next > current){reslut.push_back(current);is_up = 1;}else{continue;}}}int last_value = nums.at(nums.size() - 1);reslut.push_back(last_value);return reslut.size();}
};
  1. 斐波那契数

效率不是很高

class Solution {
public:int fib(int n) {if(n <= 0){return 0;}if(n == 1){return 1;}if(n > 1){return fib(n-1) + fib(n-2);}return 0;}
};

70.爬楼梯

使用递归比较耗时,能不用尽量不用,虽然比较好理解

class Solution {private:int dp[50];public:int climbStairs(int n) {dp[1]=1;dp[2]=2;for(int i=3; i<=n; i++){dp[i]=dp[i-1] + dp[i-2];}return dp[n];}
};

746.使用最小花费爬楼梯

class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {int count = cost.size() - 1;int bt_cost[1000];bt_cost[0] = cost.at(0);if(count < 1){return cost.at(0);}bt_cost[1] = std::min(bt_cost[0], cost.at(1));if(count < 2){return bt_cost[count];}bt_cost[2] = std::min(bt_cost[0]+cost.at(2), cost.at(1));for(int i=3; i<cost.size(); i++){bt_cost[i] = std::min(bt_cost[i-1] + cost.at(i),bt_cost[i-2] + cost.at(i-1));}return bt_cost[count];}
};

62.不同路径

class Solution {
public:int uniquePaths(int m, int n) {int data[m][n];for(int i=0; i<m;i++){for(int j=0; j<n; j++){if(i == 0 || j == 0){data[i][j] = 1;continue;}data[i][j] = data[i-1][j] + data[i][j-1];}}return data[m-1][n-1];}
};

63.不同路径2

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m = obstacleGrid.size();int n = obstacleGrid.at(0).size();int data[m][n];if(obstacleGrid.at(0).at(0) == 1){data[0][0] = 0;}else{data[0][0] = 1;}for(int i=0; i<m;i++){for(int j=0; j<n; j++){if(obstacleGrid.at(i).at(j) == 1){data[i][j] = 0;continue;}int part_1 = 0;if(i-1 >= 0){part_1 = data[i-1][j];}int part_2 = 0;if(j-1 >=0){part_2 = data[i][j-1];}if(i==0 && j==0){continue;}else{data[i][j] = part_1 + part_2;}}}return data[m-1][n-1];}
};

343.整数拆分

class Solution {
public:int integerBreak(int n) {if(n==1){return 0;}if(n==2){return 1;}if(n==3){return 2;}//elseint result[n+1];result[1] = 0;result[2] = 2;result[3] = 3;result[4] = 4;for(int i=5; i<=n; i++){int time = n/3;int last = n%3;if(last == 1){time--;last += 3;}result[i] = 1;while(time > 0){result[i] *= 3;time--;}if(last == 0){return result[i];}else{result[i] *= result[last];}}return result[n];}
};

96.不同的二叉搜索树

class Solution {
public:int numTrees(int n) {if(n==1){return 1;}int tree_num[n+1];tree_num[0] = 1;tree_num[1] = 1;tree_num[2] = 2;for(int i=3; i<=n; i++){tree_num[i] = 0;for(int j=1; j<=i; j++){int left = j-1;int right = i-j;tree_num[i] += (tree_num[left]*tree_num[right]);}}return tree_num[n];}
};

http://www.ppmy.cn/news/704045.html

相关文章

移动端H5页面的缓存问题

一、前端页面缓存问题 前端页面缓存问题是指页面的静态资源&#xff08;如图片、JS 和 CSS 文件&#xff09;在浏览器中被缓存后&#xff0c;导致页面不能正确地更新或者加载最新的内容。 为了解决这个问题&#xff0c;我们可以采用一些缓存控制策略来解决。 使用 HTTP 缓存头…

A5M2数据库工具下载

今日假期遇到问题需要连接数据库查看数据&#xff0c;适才发现家里电脑上没有安装能连接oralce数据库的工具&#xff0c;用过好几个&#xff0c;感觉A5M2体积最小巧&#xff0c;还不需要使用oralce client就可以连接&#xff0c;马上百度&#xff0c;很久没有找到官网&#xff…

MEGA-X 3D打印机教程:05_更换步进电机驱动

时间&#xff1a;2021年3月14日13:02:29 创作者&#xff1a;Microl 创作类型&#xff1a;原创 概括&#xff1a; Q&#xff1a;为什么我想要更换这台3D打印机的步进电机驱动&#xff1f; A&#xff1a;因为这个打印机虽然说是一个2K档的打印机&#xff0c;但是这个打印的时…

java m2文件放哪里_maven本地仓库.m2文件夹路径讲解

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时…

C#调用TSC打印机打印数据

打印测试,如果启动报错,则要考虑在项目属性中,生成–>目标平台,选择x86试试。TSCLIB.dll这个文件需要放置执行根目录下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; us…

verilog HDL -生成块 - generate——endgenerate

参考&#xff1a;vrilog数字系统设计 夏宇闻 【第3版】 5.7 生成块理解 生成语句可以动态的生成verilog代码&#xff0c;方便参数化模块的生成&#xff0c;大大的简化程序的编写过程,常用于以下情况&#xff1a; 对矢量中的多个位进行重复操作进行多个模块的实例引用的重复操…

LeetCode——两数相加

目录 一、两数相加 1、题目 2、题目解读 3、代码 二、反转链表 1、题目 2、题目解读 3、代码 三、两数相加 II 1、题目 2、题目解读 3、代码 反转链表再进行计算 借助栈 一、两数相加 1、题目 2. 两数相加 - 力扣&#xff08;Leetcode&#xff09; 给你两个 非…

【云原生系列】云计算概念与架构设计介绍

1 什么是云计算 云计算是一种基于互联网的计算模式&#xff0c;在这个模式下&#xff0c;各种计算资源&#xff08;例如计算机、存储设备、网络设备、应用程序等&#xff09;可以通过互联网实现共享和交付。云计算架构设计的主要目标是实现高效、可扩展、可靠、安全和经济的计算…