算法训练Day32|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

简介: 算法训练Day32|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

LeetCode:122.买卖股票的最佳时机II

122. 买卖股票的最佳时机 II - 力扣(LeetCode)

思路

当天买卖利润为0,所以索引直接从1开始即可,隔天利润与0取最大值,一直循环加和输出即可

代码实现

1class Solution {
2    public int maxProfit(int[] prices) {
3        int res = 0;
4        for (int i = 1; i < prices.length; i++) {
5            res += Math.max(prices[i] - prices[i - 1], 0);
6        }
7        return res;
8    }
9}

复杂度分析

时间复杂度:O(n).

空间复杂度:O(1).


LeetCode:55. 跳跃游戏

55. 跳跃游戏 - 力扣(LeetCode)


思路

顺序遍历,只能局限于当前索引下元素值范围内,并保存最大值,只要i+nums[i] >= nums.length - 1 ,即可返回

特殊情况:只有一个元素直接返回true.


代码实现

 1// 顺序遍历
 2class Solution {
 3    public boolean canJump(int[] nums) {
 4        if (nums.length == 1) {
 5            return true;
 6        }
 7        int cover = 0;
 8        for (int i = 0; i <= cover; i++) {
 9            cover = Math.max(i + nums[i], cover);
10            if (cover >= nums.length - 1) {
11                return true;
12            }
13        }
14        return false;
15    }
16}
17
18// 逆序遍历:看懂了顺序遍历,逆序似乎更好理解
19class Solution {
20    public boolean canJump(int[] nums) {
21        int lastPos = nums.length - 1;
22        for (int i = nums.length - 2; i >= 0; i--) {
23            if (i + nums[i] >= lastPos) {
24                lastPos = i;
25            }
26        }
27        return lastPos == 0;
28    }
29}

复杂度分析

时间复杂度:最大为O(n).

空间复杂度:O(1)

LeetCode:45.跳跃游戏II

45. 跳跃游戏 II - 力扣(LeetCode)

思路

需要清晰需要几个变量,计数器,当前索引下的最大覆盖范围.

代码实现

 1class Solution {
 2    public int jump(int[] nums) {
 3        if (nums.length == 1) {
 4            return 0;
 5        }
 6        // 计数器
 7        int count = 0;
 8        // 当前索引下的最大覆盖范围
 9        int curDistance = 0;
10        // 该覆盖范围下的覆盖范围
11        int maxDistance = 0;
12
13        for (int i = 0; i < nums.length; i++) {
14            maxDistance = Math.max(maxDistance, i + nums[i]);
15
16            if (maxDistance >= nums.length - 1) {
17                count++;
18                break;
19            } else if (i == curDistance) {
20                curDistance = maxDistance;
21                count++;
22            }
23        }
24        return count;
25    }
26}

复杂度分析

时间复杂度:O(n).

空间复杂度:O(1).

相关文章
|
9月前
|
算法
算法编程(五):买卖股票的最佳时机
算法编程(五):买卖股票的最佳时机
59 0
|
9月前
|
算法 Java 索引
[Java·算法·中等] LeetCode122. 买股票的最佳时机 II 解读
[Java·算法·中等] LeetCode122. 买股票的最佳时机 II 解读
61 0
|
9月前
|
算法
六六力扣刷题贪心算法之买卖股票的最佳时机含手续费
六六力扣刷题贪心算法之买卖股票的最佳时机含手续费
55 0
|
Java 开发工具 计算机视觉
阿里云智能视觉生产图像处理裁剪/尺寸变换Java SDK使用说明
裁剪/尺寸变换用于对输入的图片进行指定尺寸变换,自动判断主体区域位置,使用最佳的裁剪方式完成裁剪。本文介绍如何使用阿里云智能视觉生产图像处理裁剪/尺寸变换Java SDK,包括SDK的安装方法及SDK代码示例。
401 0
|
3天前
|
人工智能 自然语言处理 Shell
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
仅用3分钟,百炼调用满血版Deepseek-r1 API,享受百万免费Token。阿里云提供零门槛、快速部署的解决方案,支持云控制台和Cloud Shell两种方式,操作简便。Deepseek-r1满血版在推理能力上表现出色,尤其擅长数学、代码和自然语言处理任务,使用过程中无卡顿,体验丝滑。结合Chatbox工具,用户可轻松掌控模型,提升工作效率。阿里云大模型服务平台百炼不仅速度快,还确保数据安全,值得信赖。
129300 24
深度评测 | 仅用3分钟,百炼调用满血版 Deepseek-r1 API,百万Token免费用,简直不要太爽。
|
5天前
|
人工智能 API 网络安全
用DeepSeek,就在阿里云!四种方式助您快速使用 DeepSeek-R1 满血版!更有内部实战指导!
DeepSeek自发布以来,凭借卓越的技术性能和开源策略迅速吸引了全球关注。DeepSeek-R1作为系列中的佼佼者,在多个基准测试中超越现有顶尖模型,展现了强大的推理能力。然而,由于其爆火及受到黑客攻击,官网使用受限,影响用户体验。为解决这一问题,阿里云提供了多种解决方案。
16133 37
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
4天前
|
并行计算 PyTorch 算法框架/工具
本地部署DeepSeek模型
要在本地部署DeepSeek模型,需准备Linux(推荐Ubuntu 20.04+)或兼容的Windows/macOS环境,配备NVIDIA GPU(建议RTX 3060+)。安装Python 3.8+、PyTorch/TensorFlow等依赖,并通过官方渠道下载模型文件。配置模型后,编写推理脚本进行测试,可选使用FastAPI服务化部署或Docker容器化。注意资源监控和许可协议。
1173 8
|
13天前
|
人工智能 搜索推荐 Docker
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
DeepSeek R1 + LobeChat + Ollama:快速本地部署模型,创建个性化 AI 助手
3335 117
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手

热门文章

最新文章