当前位置: 首页 > news >正文

leetcode解题思路分析(一百六十七)1445 - 1451 题

  1. 连续字符
    给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。请你返回字符串 s 的 能量。

直接遍历一遍即可。

class Solution {
public:int maxPower(string s) {int ret = 0;if (s.empty()) { return ret; }char curr = s[0];int  curr_continue = 1;ret = 1;for (int i = 1; i < s.size(); ++i) {if (s[i] == curr) {curr_continue++;ret = max(ret, curr_continue);} else {curr = s[i];curr_continue = 1;}}return ret;}
};
  1. 最简分数
    给你一个整数 n ,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于 n 的 最简 分数 。分数可以以 任意 顺序返回。

暴力解题

class Solution {
public:vector<string> simplifiedFractions(int n) {vector<string> ans;for (int denominator = 2; denominator <= n; ++denominator) {for (int numerator = 1; numerator < denominator; ++numerator) {if (__gcd(numerator, denominator) == 1) {ans.emplace_back(to_string(numerator) + "/" + to_string(denominator));}}}return ans;}
};
  1. 数位成本和为目标值的最大数字
    给你一个整数数组 cost 和一个整数 target 。请你返回满足如下规则可以得到的 最大 整数:
    给当前结果添加一个数位(i + 1)的成本为 cost[i] (cost 数组下标从 0 开始)。
    总成本必须恰好等于 target 。
    添加的数位中没有数字 0 。
    由于答案可能会很大,请你以字符串形式返回。
    如果按照上述要求无法得到任何整数,请你返回 “0” 。

实际是一个背包问题,恰好塞满背包,令idx最大

class Solution {
public:string largestNumber(vector<int> &cost, int target) {vector<int> dp(target + 1, INT_MIN);dp[0] = 0;for (int c : cost) {for (int j = c; j <= target; ++j) {dp[j] = max(dp[j], dp[j - c] + 1);}}if (dp[target] < 0) {return "0";}string ans;for (int i = 8, j = target; i >= 0; i--) {for (int c = cost[i]; j >= c && dp[j] == dp[j - c] + 1; j -= c) {ans += '1' + i;}}return ans;}
};
  1. 在既定时间做作业的学生人数
    给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间。已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。请返回在查询时间 queryTime 时正在做作业的学生人数。形式上,返回能够使 queryTime 处于区间 [startTime[i], endTime[i]](含)的学生人数。

有手就行

class Solution {
public:int busyStudent(vector<int>& startTime, vector<int>& endTime, int queryTime) {int ret = 0;for (int i = 0; i < startTime.size(); ++i) {if (startTime[i] <= queryTime && queryTime <= endTime[i]) {ret++;}}return ret;}
};
  1. 重新排列句子中的单词
    「句子」是一个用空格分隔单词的字符串。给你一个满足下述格式的句子 text :句子的首字母大写
    text 中的每个单词都用单个空格分隔。请你重新排列 text 中的单词,使所有单词按其长度的升序排列。如果两个单词的长度相同,则保留其在原句子中的相对顺序。请同样按上述格式返回新的句子。

找出每个单词,然后排序


class Solution {
private:vector<string> split(const string& str){vector<string> res;stringstream ss(str);string curr;while (ss >> curr) {res.push_back(curr);}return res;}public:string arrangeWords(string text) {text[0] = tolower(text[0]);vector<string> strs = split(text);stable_sort(strs.begin(), strs.end(), [](const string& a, const string& b){return a.size() < b.size();});stringstream ss;strs[0][0] = toupper(strs[0][0]);ss << strs[0];for (int i = 1; i < strs.size(); ++i){ss << " " << strs[i];}return ss.str();}
};
http://www.dtcms.com/a/416220.html

相关文章:

  • 网站建设中的端口wordpress增加友情链接
  • Python实现SQL语句自动转换工具(UPDATE到INSERT)
  • 找网站建设公司好php制作网站
  • 建设银行网银官方网站通州企业网站建设
  • 《Python中的适配器模式实战:让第三方库优雅融入你的系统》
  • 深圳私人做网站做venn图的网站
  • 网站搭建设计 是什么中国建设银行网站首页旧版
  • 做网站vpn多大内存网站策划资料方案
  • 注册网站域名平台南通外贸建站
  • 打工人日报#20250927
  • 做网站的系统功能需求贵阳网站优化
  • 【C#】.NET开发中30秒判断该用 IEnumerable 还是 IQueryable
  • 南宁手机网站设计策划今天发生的重大新闻事件
  • 网站开发的源码html基本结构代码
  • 公司做网站需要哪些步骤俄语网站设计
  • 软件测试-性能测试⼯具篇(沉淀中)
  • 雄安专业网站建设电话室内装修效果图
  • 电子网站建设方案世界500强企业愿景
  • 回溯算法的思路总结
  • 江汉建站公司可以拿自己电脑做网站
  • 合肥做网站维护的公司专业定制网站公司
  • Docker简单学习
  • [学习日记][ssm p103以前]
  • 做网站1000以下哪家好海淀做网站设计的公司
  • 有的网站打不开 但别人电脑能打开跨境电商热销产品排行
  • 网站统计代码丹东网站推广
  • 从“链”到“图”:LangGraph如何终结LangChain的线性智能体
  • 专业的个人网站建设哪家登封网络推广
  • 东莞全网合一网站iis网站重定向设置
  • 基于STM32与influxDB的电力监控系统-4