1. 两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ n = len(nums) # len([2, 7, 11, 15]) = 4 for i in range(0, n-1): #range(x,y)的取值范围是[x,y),下标值从0开始,同样元素不能重复所以range(0,n-1) for j in range(i+1, n): if(nums[i] + nums[j] == target): return [i, j]
2. 给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -321
示例 3:
输入: 120 输出: 21
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ s = int(str(abs(x))[::-1]) #取绝对值,翻转 if s > 2147483647 or s < -2147483648 : #如果溢出 返回0 return 0 return s if x > 0 else -s #如果原始值<0,反转后的值为-s