谢顶者同盟旨在面向公司笔试面试刷题。
第一期活动,选用《剑指offer》练习题。练习网址 题号为[13, 88],共计76题。预计时间两个月。
练习中只需要编写出解决问题的函数,不需要完整的本地可执行代码。
以第一题找出数组中重复的数字为示例:
C语言代码:
int duplicateInArray(int *nums, int numsSize){
int mark[numsSize];
int i;
for(i=0; i<numsSize; ++i)
mark[i] = 0;
for(i=0; i<numsSize; ++i)
{
if(nums[i]<0 || nums[i]>numsSize-1)
return -1;
mark[nums[i]]++;
}
for(i=0; i<numsSize; ++i)
if(mark[i]>1)
return i;
return -1;
}
Python3代码:
class Solution(object):
def duplicateInArray(self, nums):
"""
:type nums: List[int]
:rtype int
"""
length = len(nums);
li = [0]*length;
for i in nums:
if i<0 or i>length-1:
return -1
li[i] += 1
for i in range(length):
if li[i] > 1:
return i
return -1