66
题目描述:
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例:
解答:
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
n=len(digits)
for i in range(n-1,-1,-1):
if digits[i]==9:
digits[i]=0
else:
digits[i]+=1
return digits #直接退出循环
return [1]+digits #最前面增加一位
67
题目描述:
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
示例:
解答:
class Solution:
def addBinary(self, a: str, b: str) -> str:
return bin(int(a,2)+int(b,2))[2:] #bin函数返回字符串0bxxx
69
题目描述:
实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
示例:
解答:
class Solution:
def mySqrt(self, x: int) -> int:
return int(math.sqrt(x))
83
题目描述:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例:
解答:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
node=head
while node and node.next:
if node.val==node.next.val:
node.next=node.next.next
else:
node=node.next
return head
剑指offer64
题目描述:
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例:
解答:
class Solution:
def sumNums(self, n: int) -> int:
return (n*(n+1))//2 #等差数列求和