leetcode
still_learning
这个作者很懒,什么都没留下…
展开
-
【leetcode】位运算选题
一般来说,如果不需要额外空间这类做法,常常要往位运算上面靠。并且!输入需要是整数。介绍一下python中的位运算符号异或操作,相同为0,不同为1。习题:leetcode 136. 只出现一次的数字...原创 2022-02-23 21:20:17 · 167 阅读 · 0 评论 -
【leetcode】<贪心-中等>452. 用最少数量的箭引爆气球
在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,所需的弓箭原创 2022-02-23 20:17:57 · 105 阅读 · 0 评论 -
【leetcode】<贪心-中等>763-划分字母区间
字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。这道题主要的思路是,我们为了保证划区间的时候能把同一个字母划在同一个区间中,那么就需要知道这个字母最后结束在哪里(第一次遍历算出来);之后我们再遍历一次该字符串,我们先假定当前划分字符串为【0,0】;如果当前字母的位置cur已经超过了上一段结束的位置end的时候,我们就开启一段新的字符串,并且该字符串的结束位置,就是该字母最后一个的位置:start = cur,.原创 2022-02-23 17:53:04 · 171 阅读 · 0 评论 -
【贪心算法专题】(c++)
分糖果http://oj.haizeix.com/problem/750v1一个较为复杂的思路:理解题目,可以发现从左往右分糖果,如果下一个孩子评分更高,则该孩子的糖果数就+1。比如序列1 2 3 我们分配的糖果也是1 2 3循环中遇到的另一种情况就是下一个孩子评分更低的情况,这时候可以认为他该分的糖果数为1。此时需要反过来考虑当前这个孩子是否为1,此时需要从右往左开始考虑,反过来把之前的数字加1。#include<iostream>using namespace std;i原创 2022-02-21 21:21:25 · 815 阅读 · 0 评论