二分+贪心

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;

}

};

相关推荐
用户9385156350719 分钟前
从 O(n²) 到 O(nlogn):一文读懂快速排序的“快”与“妙”
javascript·算法
To_OC1 小时前
手写快排次次翻车?别死背快排模板了,这才是面试官想听的底层逻辑
javascript·算法·排序算法
饼干哥哥2 小时前
Reddit VOC调研太慢?搭一个AI专家团队半小时洞察任何品类|以猫用饮水机为例
人工智能·算法·ai编程
地平线开发者3 小时前
Transformer模型部署之性能优化指南
算法
地平线开发者4 小时前
人在途中:从“编译失败”到“模型可落地”——CUDA 自定义算子
算法·自动驾驶
半个落月6 小时前
从递归到快速排序:用 JavaScript 把分治思想讲明白
javascript·算法·面试
小月土星7 小时前
JavaScript 快速排序:从 pivot、双指针到分治思想
javascript·算法·面试
小月土星8 小时前
JavaScript 递归入门:从 1 到 n 求和,再到数组扁平化
javascript·算法·面试
To_OC1 天前
LC 1 两数之和:面试第一道必考题,暴力解法直接被面试官 pass
javascript·算法·leetcode