随笔分类 -  LeetCode

上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页
摘要:给你一个整数数组 arr,请你将该数组分隔为长度 最多 为 k 的一些(连续)子数组。 分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。 返回将数组分隔变换后能够得到的元素最大和 ###一. 动态规划(正向递推) 分析:数组的最大和是和子数组最大和关联的,对子问题的优化可以带来对整个问 阅读全文
posted @ 2023-04-19 21:52 失控D大白兔 阅读(75) 评论(0) 推荐(0)
摘要:设计一个数据结构,有效地找到给定子数组的 多数元素 。 子数组的 多数元素 是在子数组中出现 threshold 次数或次数以上(大于半数)的元素 分析 对于子区间进行多次查询,采用线段树的方法 给定的数组,我们可以将它分成任意的两部分,分别使用投票算法得到多数元素和出现的次数 如果该数组存在多数元 阅读全文
posted @ 2023-04-18 00:01 失控D大白兔
摘要:###1. 深度优先搜索 + 深度优先搜索 > 分析:选择不相邻节点减半价格并最小化价格 > 涉及到图的选择的问题,考虑使用回溯法,选择为当前节点减半或者不减半,并递归搜索相邻节点 > 不过该题首先要知道哪些点走了几次,可以根据路径选择事先用回溯法得到每个点的访问次数 > 然后根据访问次数与价格生成 阅读全文
posted @ 2023-04-16 19:54 失控D大白兔
摘要:政府批准了可以额外建造 k 座供电站,你需要决定这些供电站分别应该建在哪里,这些供电站与已经存在的供电站有相同的供电范围。 给你两个整数 r 和 k ,如果以最优策略建造额外的发电站,返回所有城市中,最小供电站数目的最大值是多少。 ###一. 二分法+前缀和+贪心 > 分析:最大化最小值,首先考虑使 阅读全文
posted @ 2023-04-15 04:18 失控D大白兔
摘要:在一个 n x n 的整数矩阵 grid 中,每一个方格的值 grid[i][j] 表示位置 (i, j) 的平台高度。 当开始下雨时,在时间为 t 时,水池中的水位为 t 。你可以从一个平台游向四周相邻的任意一个平台,但是前提是此时水位必须同时淹没这两个平台。 你从坐标方格的左上平台 (0,0) 阅读全文
posted @ 2023-04-14 03:40 失控D大白兔
摘要:1. 图中的最短环 广度优先搜索 class Solution { public: int findShortestCycle(int n, vector<vector<int>> &edges) { vector<vector<int>> g(n);//二维矩阵存储 for (auto &e: e 阅读全文
posted @ 2023-04-12 01:33 失控D大白兔
摘要:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等 ###一. 回溯法 ####1. 对每个数,回溯放入子集(球视角) 只关心每个球是否成功放入,球在k个容器中做选择,做出选择后进入下一个状态 class Solution { public: b 阅读全文
posted @ 2022-09-20 10:06 失控D大白兔
摘要:###1. 灯泡开关I 初始时有 n 个灯泡处于关闭状态,第i轮切换i的倍数位置的开关,直到第n轮切换位置n的灯泡开关,返回n轮后灯泡亮着个数 实际上就是求进行奇数次操作灯泡个数,对第k个灯泡进行操作的轮次为其约数,约数一般成对存在,除非为完全平方数 原问题转换为求1~n的完全平方数个数 retur 阅读全文
posted @ 2022-09-15 01:19 失控D大白兔
摘要:有 n 名工人, 给定两个数组 quality 和 wage ,其中 quality[i] 表示第 i 名工人的工作质量,其最低期望工资为 wage[i] 现在我们想雇佣 k 名工人组成一个工资组,满足一下条件 1. 对工资组中的每名工人,应当按其工作质量与同组其他工人的工作质量的比例来支付工资。 阅读全文
posted @ 2022-09-11 00:53 失控D大白兔
摘要:求数组最长摆动子序列长度 ####1. 动态规划 分两种状态进行转移 up[i]表示数组前i个数的最长上升摆动序列长度 down[i]表示数组前i个数的最长下降摆动序列长度 注意比较条件,以及导致状态转移的原因 class Solution { public: int wiggleMaxLength 阅读全文
posted @ 2022-09-03 18:22 失控D大白兔
摘要:在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost ,如果你可以绕环路行驶一周,则返 阅读全文
posted @ 2022-09-03 15:44 失控D大白兔
摘要:给你一个整数数组nums ,判断这个数组中是否存在长度为 3 的递增子序列 ####1. 贪心法 贪心更新两个最左端端点 class Solution { public: bool increasingTriplet(vector<int>& nums) { int len = nums.size( 阅读全文
posted @ 2022-09-03 01:49 失控D大白兔
摘要:####1. 生产者-消费者问题(互斥+同步) 生产者把消息放入缓冲区,消费者从中取出信息,二者互斥访问 semaphore mutex = 1;//互斥访问缓冲区,因为有多个缓冲区资源 semaphore empty = n;//n个空闲区资源,内部互斥 semaphore full = 0;// 阅读全文
posted @ 2022-08-28 01:52 失控D大白兔
摘要:####1. 返回尾零数量 可以转换为求质因子为2和5数量的较小值,实际上就是求质因子为5的数量 class Solution { public: int trailingZeroes(int n) { int ans = 0; for (int i = 5; i <= n; i += 5) //遍 阅读全文
posted @ 2022-08-28 00:32 失控D大白兔 阅读(25) 评论(0) 推荐(0)
摘要:给定排序好的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的 ####1. 通用调库解法 class Solution { public: vector<int> findClosestElements(vector<int> 阅读全文
posted @ 2022-08-25 00:48 失控D大白兔
摘要:一个 n x n 的二维网络 board 仅由 0 和 1 组成 。每次移动,你能任意交换两列或是两行的位置 返回将这个矩阵变为 “棋盘” 所需的最小移动次数 ,如果不存在可行的变换,输出 -1 ####1. 数学方法 移动使满足条件的题目,首先得判断棋盘是否满足条件 容易从棋盘得知,需要满足以下几 阅读全文
posted @ 2022-08-23 08:18 失控D大白兔
摘要:####1. 非递归先序 vector<int> preorderTraversal(TreeNode* root) { vector<int> nums; stack<TreeNode*> s; while(root||!s.empty()){ if(root){ nums.push_back(r 阅读全文
posted @ 2022-08-21 23:04 失控D大白兔
摘要:####1. 递归删除指定值(无头结点) void Del(ListNode* L,int val){ ListNode* p;//指向被删除节点 if(L==NULL) return;//递归边界 if(L->val==val){//处理首指针 p = L; L = L->next; free(p 阅读全文
posted @ 2022-08-20 19:53 失控D大白兔
摘要:####1. 删除返回最小值并由最后元素填补 bool Del_Min(vector<int>& nums,int &val) { if(nums.size()==0) return false; int pos = 0;//假定0号元素最小 for(int i=1;i<nums.size();i+ 阅读全文
posted @ 2022-08-20 18:35 失控D大白兔
摘要:给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值 递归地在最大值 左边 的 子数组前缀上 构建左子树 递归地在最大值 右边 的 子数组后缀上 构建右子树 ####1. 暴力分治构造 暴力在于每次递归都要找一次 阅读全文
posted @ 2022-08-20 00:56 失控D大白兔

上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页