news 2026/3/30 4:12:08

实习刷题18

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实习刷题18

今天再摆一次吧,嘿嘿嘿

一:乘积最大子数组

class Solution { public: int maxProduct(vector<int>& nums) { int n = nums.size(); int pre_min = 1; int pre_max = 1; int max = INT_MIN; for(int i = 0 ; i < n ; ++i) { int curr_min = std::min(nums[i],std::min(pre_min*nums[i],pre_max*nums[i])); int curr_max = std::max(nums[i],std::max(pre_max*nums[i],pre_min*nums[i])); pre_max = curr_max; pre_min = curr_min; max = std::max(max,curr_max); } return max; } };

二:分割和等子集

class Solution { public: bool canPartition(vector<int>& nums) { int sum = std::accumulate(nums.begin() , nums.end(),0); if(!sum || sum % 2) { return false; } int target = sum / 2; std::vector<int> dp(target+1); dp[0] = 1; for(auto& num : nums) { for(int i = target ; i >= num ; --i) { if(dp[i - num]) { dp[i] = 1; } if(dp[target]) { return true; } } } return false; } };

三:最长有效括号

class Solution { public: int longestValidParentheses(string s) { int n = s.size(); if(n <= 1) { return 0; } std::stack<int> stk; stk.push(-1); int max = 0; for(int i = 0 ; i < n ; ++i) { if(s[i] == ')') { if(stk.top() == -1 || s[stk.top()] != '(') { while(stk.size()) { stk.pop(); } } else if(s[stk.top()] == '(') { stk.pop(); max = std::max(max,i-stk.top()); continue; } } stk.push(i); } return max; } };

四:不同路径

class Solution { public: int uniquePaths(int m, int n) { if(!m || !n) { return 0; } std::vector<std::vector<int>> dp(n,std::vector<int>(m)); for(int i = 0 ; i < n ; ++i) { for(int j = 0 ; j < m ; ++j) { if(!i && !j) { dp[i][j] = 1; } else if(!i || !j) { if(!i) { dp[0][j] = 1; } else { dp[i][0] = 1; } } else { dp[i][j] = dp[i-1][j] + dp[i][j-1]; } } } return dp[n-1][m-1]; } };

五:完全平方数

class Solution { public: int numSquares(int n) { std::vector<int> dp(n+1,n+1); dp[0] = 0; for(int i = 1 ; i <= n ; ++i) { for(int j = 1; j*j <= i ; ++j) { dp[i] = std::min(dp[i],dp[i-j*j]+1); } } return dp[n]; } };

六:只出现一次的数字

class Solution { public: int singleNumber(vector<int>& nums) { int ret = 0; for(auto&num : nums) { ret ^= num; } return ret; } };

七:多数元素

class Solution { public: int majorityElement(vector<int>& nums) { int ret = 0; int max = 0; for(auto& num : nums) { if(ret != num) { if(max == 0) { ret = num; max = 1; } else { --max; } } else { ++max; } } return ret; } };

八:颜色分类

class Solution { public: void sortColors(vector<int>& nums) { int n = nums.size(); int zero = 0; int one = 0; for(int i = 0 ; i < n ; ++i) { if(nums[i] == 0) { std::swap(nums[zero],nums[i]); if(one > zero) { std::swap(nums[one],nums[i]); } ++zero; ++one; } else if(nums[i] == 1) { std::swap(nums[i],nums[one]); ++one; } } } };

九:寻找重复数

class Solution { public: int findDuplicate(vector<int>& nums) { int fast = 0; int slow = 0; while(true) { fast = nums[nums[fast]]; slow = nums[slow]; if(fast == slow) { fast = 0; while(fast != slow) { fast = nums[fast]; slow = nums[slow]; } return fast; } } return 0; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/28 8:11:56

Conda安装PyTorch总是失败?试试这个预配置CUDA工具包镜像

Conda安装PyTorch总是失败&#xff1f;试试这个预配置CUDA工具包镜像 在深度学习项目启动的前30分钟&#xff0c;你最不想看到的画面是什么&#xff1f;——不是模型收敛缓慢&#xff0c;也不是显存溢出&#xff0c;而是终端里那行永远不动的提示&#xff1a; Solving environm…

作者头像 李华
网站建设 2026/3/27 0:33:34

城市仿真软件:UrbanSim_(1).UrbanSim概述

UrbanSim概述 城市仿真软件的背景和意义 城市仿真软件是现代城市规划和管理的重要工具&#xff0c;它通过模拟城市的各种动态过程&#xff0c;帮助规划师和决策者更好地理解和预测城市发展的趋势。UrbanSim是一款开源的城市仿真软件&#xff0c;它基于Python开发&#xff0c;能…

作者头像 李华
网站建设 2026/3/26 10:41:27

HuggingFace镜像网站推荐:快速下载大模型+PyTorch环境集成

HuggingFace镜像网站推荐&#xff1a;快速下载大模型 PyTorch环境集成 在人工智能项目开发中&#xff0c;你是否经历过这样的场景&#xff1f;——深夜调试模型&#xff0c;from_pretrained() 卡在“Downloading”状态一小时不动&#xff1b;好不容易下完权重文件&#xff0c…

作者头像 李华
网站建设 2026/3/27 5:14:56

近视防控不能放松!防止视力“滑坡”的科学指南

近视问题正逐渐低龄化、普遍化&#xff0c;成为影响国民健康尤其是青少年视力健康的重要隐患。无论处于哪个年龄段&#xff0c;近视防控都绝非阶段性任务&#xff0c;而是需要长期坚持的健康管理工作。忽视视力保护&#xff0c;就可能让视力持续“滑坡”&#xff0c;进而影响生…

作者头像 李华
网站建设 2026/3/26 22:13:13

AI核心知识十——多模态大模型

AI核心知识十&#xff1a;多模态大模型&#xff08;简洁通俗版&#xff09; 多模态大模型&#xff08;Multimodal Large Models&#xff0c;简称 MLLM 或 LMM&#xff09;是当前AI的最前沿&#xff0c;它不再只懂文字&#xff0c;而是能同时处理多种模态&#xff08;如文本 图…

作者头像 李华
网站建设 2026/3/26 20:55:42

PyTorch GPU环境配置避坑指南:常见错误及解决方案汇总

PyTorch GPU环境配置避坑指南&#xff1a;常见错误及解决方案汇总 在深度学习项目启动阶段&#xff0c;最让人抓狂的往往不是模型调参&#xff0c;而是——为什么 torch.cuda.is_available() 返回的是 False&#xff1f; 明明装了RTX 4090&#xff0c;显存24GB&#xff0c;结…

作者头像 李华