Ywc's blog

LintCode代码练习

Word count: 427Reading time: 2 min
2019/03/20

简单题

A+B的问题

给出两个整数 aa 和 bb , 求他们的和。
样例 1:

  • 输入: a = 1, b = 2
    输出: 3
    解释: 返回a+b的结果.

样例 2:

  • 输入: a = -1, b = 1
    输出: 0
    解释: 返回a+b的结果.
    1

合并排序数组||

合并两个有序升序的整数数组A和B变成一个新的数组。新数组也要有序。
样例 1:

  • 输入: A=[1], B=[1]
    输出:[1,1]
    样例解释: 返回合并后的数组。

样例 2:

  • 输入: A=[1,2,3,4], B=[2,4,5,6]
    输出: [1,2,2,3,4,4,5,6]
    样例解释:返回合并后的数组。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class Solution:
    def mergeSortedArray(self,A,B):
    ans=[]
    i,j=0,0
    n,m=len(A),len(B)
    while i < n and j<m:
    if A[I]<B[J]:
    ans.append(A[I])
    i+=1
    else:
    ans.append(B[j])
    j+=1
    while i<n:
    ans.append(B[j])
    j+=1
    return ans

中等题

统计数字

计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值
样例
样例 1:

  • 输入:k = 1, n = 1
    输出:1
    解释:在 [0, 1] 中,我们发现 1 出现了 1 次 (1)。

样例 2:

  • 输入:k = 1, n = 12
    输出:5
    解释:在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中,我们发现 1 出现了 5 次 (1, 10, 11, 12)。
1
2
3
4
5
6
7
8
9
10
11
12
def digitCounts(self, k, n):
assert(n>=0 and 0 <= k <= 9)
count = 0
for i in range(n+1):
j=i
while True
if j%10==k:
count+=1
j/=10
if j==0:
break
return count
1
2
3
4
5
6
7
class Solution:
def digitCounts(self,k,n):
result=0
for item in range(0,n+1):
count_tmp=str(item).count(str(k))
result+=count_tmp
return result

CATALOG
  1. 1. 简单题
    1. 1.1. A+B的问题
    2. 1.2. 合并排序数组||
  2. 2. 中等题
    1. 2.1. 统计数字
    2. 2.2.