二分+贪心

lc401

popcount(x) 快速算出一个整数二进制里有多少个 1

class Solution {

public:

vector<string> readBinaryWatch(int turnedOn) {

vector<string> ans;

char s6;

for (uint8_t h = 0; h < 12; h++) {

for (uint8_t m = 0; m < 60; m++) {

if (++popcount(h) + popcount(m) == turnedOn++) {

++sprintf(s, "%d:%02d", h, m);++

ans.emplace_back(s);

}

}

}

return ans;

}

};

lc3449

二分+贪心

二分答案,在步数限制内,求能达到的最大最小分数

class Solution {

public:

long long maxScore(vector<int>& points, int m) {

auto check = \&(long long low) -> bool {

int n = points.size(), rem = m, pre = 0;

for (int i = 0; i < n; i++) {

int k = (low - 1) / pointsi + 1 - pre; // 还需要操作的次数

if (i == n - 1 && k <= 0) { // 最后一个数已经满足要求

break;

}

k = max(k, 1); // 至少要走 1 步

rem -= k * 2 - 1; // 左右横跳

if (rem < 0) {

return false;

}

pre = k - 1; // 右边那个数顺带操作了 k-1 次

}

return true;

};

long long left = 0;

long long right = 1LL * (m + 1) / 2 * ranges::min(points) + 1;

while (left + 1 < right) {

long long mid = left + (right - left) / 2;

(check(mid) ? left : right) = mid;

}

return left;

}

};

相关推荐
依然范特东2 分钟前
强化学习笔记6--IS、PPO、TD、DQN、Actor-Critic
笔记·算法
一次旅行2 小时前
RLHF全链路深度解析:Reward Model数学推导+PPO完整实战,对比GRPO轻量化方案
人工智能·算法·机器学习
Wang's Blog2 小时前
AI Agent白手起家29: Few Shot 提示词工程实战
人工智能·算法
June`2 小时前
warp shuffle指令
c++·人工智能·算法·cuda
geovindu2 小时前
go:Bit Operation Algorithm
开发语言·后端·算法·golang·位运算法
坏柠3 小时前
C语言进阶:从零实现一个可靠的环形缓冲区,吃透回绕、边界与并发
java·c语言·算法
Wang's Blog3 小时前
AI Agent白手起家31: 根据语义相似度动态选择 Few Shot 示例
人工智能·算法
白白白小纯4 小时前
每日算法day3—回文链表,链表分割
c语言·数据结构·算法·leetcode
手写码匠4 小时前
华为云Flexus+DeepSeek征文|Dify 构建企业级联网搜索 Agent:查询改写、多源检索与引用溯源实战
人工智能·深度学习·算法·aigc
tudousisi2224 小时前
B3928 [GESP202312 四级] 田忌赛马
算法