目录
1、只出现一次的数字(位运算,数组)
示例
选项代码
2、子集(位运算,数组)
示例
选项代码
3、杨辉三角 II(数组,动态规划)
示例
选项代码
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4
from typing import List
class Solution:def singleNumber(self, nums: List[int]) -> int:nums = sorted(nums)i = 0while i < len(nums) - 1:if nums[i] == nums[i + 1]:i += 2else:return nums[i]return nums[i]
if __name__ == '__main__':s = Solution()print(s.singleNumber( [4,1,2,1,2]))
给你一个整数数组 nums
,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
示例 1:
输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
示例 2:
输入:nums = [0]输出:[[],[0]]
提示:
1 <= nums.length <= 10
-10 <= nums[i] <= 10
nums
中的所有元素 互不相同class Solution:def subsets(self, nums):allset = 2 ** len(nums)result = []for i in range(allset):item = []for j in range(len(nums)):if i & (2 ** j):item.append(nums[j])result.append(item)return result
if __name__ == "__main__":s = Solution()print (s.subsets([1,2,3]))
给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: rowIndex = 3
输出: [1,3,3,1]
示例 2:
输入: rowIndex = 0
输出: [1]
示例 3:
输入: rowIndex = 1
输出: [1,1]
提示:
进阶:
你可以优化你的算法到 O(rowIndex) 空间复杂度吗?
class Solution(object):def getRow(self, rowIndex):""":type rowIndex: int:rtype: List[int]"""if rowIndex == 0:return [1]pas = [1]for i in range(rowIndex):newLine = list(map(lambda x, y: x + y, [0] + pas, pas + [0]))pas = newLinereturn pas
if __name__ == "__main__":s = Solution()print (s.getRow(3))
上一篇:张岱的人物生平
下一篇:没有了