![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题记录
文章平均质量分 91
紫菜花油菜花
这个作者很懒,什么都没留下…
展开
-
【算法】记忆化回溯+状态压缩+分治
// 优化四:指令集优化,让CPU使用POPCNT指令,从而加速__builtin_popcount#pragma GCC target ("sse4.2")__builtin_popcount(state) == sz; 该指令计算state中二进制1的个数5619. 最小不兼容性给你一个整数数组 nums 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中,使得同一个子集里面没有两个相同的元素。一个子集的 不兼容性 是该子集里面最大值和最小值的差。请你返回将数组分成 k原创 2021-03-30 14:50:07 · 213 阅读 · 0 评论 -
【PYTHON-leetcode】121.买卖股票的最佳时机(分治法、动态规划求解)
121.买卖股票的最佳时机分治法'''分治法: 一分为2,最大收益要么在前一半要么在后一半 要么跨中心:跨中心采用贪心策略:取前一半最小和后一半最大迭代结束条件/边界条件: 1.空集或只有1个元素 2.2个元素 由于分治法需要重复求解边界条件,故此处使用动态规划更为适合''' n=len(prices) if n<=1: ...原创 2020-01-19 22:02:03 · 1124 阅读 · 2 评论 -
【PYTHON-leetcode】53.最大子序列和四种详细解法(暴力,贪心,分治,DP)
maximum-sum-subarray 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。看到一个形象的比喻:假设你是一个选择性遗忘的赌徒,数组nums表示你这几天来赢钱或者输钱sum——表示这几天来的输赢,max——存储你手里赢到的最多的钱,如果昨天你手上还是输钱(sum < 0),你忘记它,明天继续赌钱;如果你...原创 2020-01-17 17:40:39 · 574 阅读 · 0 评论