二分+贪心

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;

}

};

相关推荐
需要8261 分钟前
分布式 ID 生成:雪花算法、号段模式与时钟回拨
分布式·算法
垆边人似月.8 分钟前
华为机考题:字符串分隔
算法·华为
CQU_JIAKE12 分钟前
9.4【A】
算法
CQU_JIAKE15 分钟前
9.13[A]
算法
懿路向前25 分钟前
【唤醒实战笔记】2026-09-29 | 智能体提示词迭代史(v1 → v8)
linux·笔记·算法
@陈小鱼1 小时前
基于CNN-Transformer的无袖带血压估计
人工智能·深度学习·神经网络·算法·cnn·transformer·血压
黄金龙PLUS1 小时前
5个1280比特大状态置换算法的设计与分析
算法·网络安全·密码学·哈希算法·同态加密
不会就选b1 小时前
算法日常・每日刷题--<动态规划>1
java·数据结构·算法
shehuiyuelaiyuehao1 小时前
算法54,链表 两数相加
数据结构·算法·链表
147API2 小时前
如何设计“回答、追问、停答”三类蒸馏训练集
人工智能·算法·机器学习