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

寒假刷题Day19

一、923. 三数之和的多种可能

class Solution {
public:int threeSumMulti(vector<int>& arr, int target) {const int MOD = 1'000'000'007; // 正确的模数long long ans = 0; // 使用 long long 防止溢出std::sort(arr.begin(), arr.end());for (size_t i = 0; i < arr.size(); ++i) {int T = target - arr[i];size_t j = i + 1, k = arr.size() - 1;while (j < k) {if (arr[j] + arr[k] < T) {j++;} else if (arr[j] + arr[k] > T) {k--;} else if (arr[j] != arr[k]) { int left = 1, right = 1;while (j + 1 < k && arr[j] == arr[j + 1]) {left++;j++;}while (k - 1 > j && arr[k] == arr[k - 1]) {right++;k--;}ans += static_cast<long long>(left) * right; // 避免溢出ans %= MOD;j++;k--;} else {long long M = k - j + 1;ans += (M * (M - 1) / 2) % MOD; // 避免溢出ans %= MOD;break;}}}return static_cast<int>(ans);}
};

static_cast<long>(value)在编译时进行类型转换,比c风格的(long)value更安全更清晰

二、948. 令牌放置

思路:点数小的得分,大的吃掉,当不够获得最小令牌的分时候,吃一个最大的令牌

class Solution {
public:int bagOfTokensScore(vector<int>& tokens, int P) {if (tokens.empty()) return 0;sort(tokens.begin(), tokens.end());if (P < tokens[0]) return 0;int N = tokens.size();int left = 0;int right = N - 1;int score = 0;int res = 0;while (left <= right) {if (P < tokens[left]) {if (score <= 0) return res;P += tokens[right];--score;--right;} else {P -= tokens[left];++score;++left;res = max(res, score);}}return res;}
};

http://www.lryc.cn/news/529887.html

相关文章:

  • 写好简历的三个关键认知
  • 工具的应用——安装copilot
  • Koa 基础篇(二)—— 路由与中间件
  • 帆软 FCA -业务分析师认证学习
  • Miniconda 安装及使用
  • solidity高阶 -- Eth支付
  • 深入理解Java中的String
  • 洛谷 P1734 最大约数和 C语言
  • Golang 执行流程分析
  • python学opencv|读取图像(五十一)使用修改图像像素点上BGR值实现图像覆盖效果
  • Flask数据的增删改查(CRUD)_flask删除数据自动更新
  • kamailio-ACC模块介绍【kamailio6.0. X】
  • 数据库对象
  • EtherCAT主站IGH-- 27 -- IGH之globals.h文件解析
  • 2025多目标优化创新路径汇总
  • 15JavaWeb——Maven高级篇
  • 使用Ollama本地化部署DeepSeek
  • 蓝桥杯刷题DAY1:前缀和
  • 【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户注册
  • MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译
  • 微服务入门(go)
  • Baklib揭示内容中台实施最佳实践的策略与实战经验
  • C++11新特性之lambda表达式
  • 洛谷 P10289 [GESP样题 八级] 小杨的旅游 C++ 完整题解
  • 使用 Tauri 2 + Next.js 开发跨平台桌面应用实践:Singbox GUI 实践
  • JWT入门
  • Python - Quantstats量化投资策略绩效统计包 - 详解
  • 智慧园区管理系统推动企业智能运维与资源优化的全新路径分析
  • 【数据结构-字典树】力扣14. 最长公共前缀
  • 《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(31):HTTPS和TLS/SSL