给定一个整数stones数组,其中stones[i]表示ith石头的重量。
我们想对石头进行如下模拟:
在每一步中,我们选择两块最重的石头,重量为x和y ,并将它们 粉碎在一起。
如果x == y ,两块石头都会被摧毁。
如果x < y ,则重量x的石头被破坏,并且重量y的石头具有新的重量y - x 。
继续模拟,直到剩下的石头不超过一颗。
返回最后剩余的石头的重量,如果没有剩余则返回0
解题1: 大顶堆
时间复杂度: ,堆排序的时间复杂度是,取某个最大值的时间复杂度为,然后乘以我们要重复进行的次数n,总的时间复杂度就是
空间复杂度:
给定一个整数n表示到达楼梯顶部的台阶数。您可以一次攀登1或2台阶。
返回爬到楼梯顶部的不同方式的数量。
时间复杂度:
空间复杂度:
给定一个整数cost数组,其中cost[i]是从楼梯ith层迈出一步的成本。支付费用后,您可以前往第( i + 1 ) th层或( i + 2 ) th层。
您可以选择从索引0或索引1楼层开始。
返回到达楼梯顶部的最小成本,即刚刚经过cost中的最后一个索引。
时间复杂度:
空间复杂度:
给定一个由开始时间和结束时间组成的会议时间间隔对象数组 [[start_1,end_1],[start_2,end_2],…] (start_i < end_i) ,确定一个人是否可以将所有会议添加到其日程安排中而不发生任何冲突。
时间复杂度: ,首先对列表进行排序时间复杂度是,之后只需要遍历列表就可以了
空间复杂度:或取决于排序算法。
非循环数是由以下算法定义的整数:
- 给定一个正整数,将其替换为其数字的平方和。
- 重复上述步骤,直到数字等于1 ,否则无限循环,不包含1 。
- 如果停在1处,则该数是非循环数。
给定一个正整数n ,如果它是非循环数,则返回true ,否则返回false 。
解题1: 哈希集
时间复杂度:
空间复杂度:
给定一个整数数组digits ,其中每个digits[i]是一个大整数的ith数字。它按从最高有效位到最低有效位的顺序排列,并且不包含任何前导零。
返回给定整数加一后的数字。
解题1: 迭代
时间复杂度:
空间复杂度:
给您一个非空整数数组nums 。除一个整数外,每个整数都出现两次。
返回只出现一次的整数。
您必须实施一个解决方案 O(n)运行时复杂性和仅使用 O(1) 额外的空间。
解题1: 排序
时间复杂度:
空间复杂度:或者取决于排序算法。
解题2: 位操作
为什么用异或运算可以解决实际不是很清楚,先记住吧
时间复杂度:
空间复杂度:
给你一个无符号整数n 。返回其二进制表示形式中1的位数。
您可以假设n是一个 32 位以内的非负整数。
解题1: 位掩码
时间复杂度:
空间复杂度:
解题2:
一种比较难想到的方法