**
一、
**
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
第一次刷牛客网的题,第一道做的还不难。使用python语言
因为有序,所以使用二分查找算法
主要注意数组下标 i,j。
写算法时需要先构思好再写。
# -*- coding:utf-8 -*-
class Solution:
def two_find(self,target,lis):
i=0
j=len(lis)-1
while(True):
if i>j:
return False
k = int((i + j) / 2)
if lis[k]>target:
j=k-1
elif lis[k] < target:
i=k+1
else :
return True
def Find(self, target, array):
for lis in array:
re = self.two_find(target,lis)
if re == True:
break
return re
aa=Solution()
hh = aa.Find(7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]])
二
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
真没想到这题用python居然如此简单,我当时提交的在想若时间复杂度通不过的话就用链表。没想到这样居然通过了。
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
s1 = ""
lis = s.split(' ')
for i in lis[:-1]:
s1 += i +'%20'
s1 += lis[-1]
return s1
# write code here
ff = Solution()
print(ff.replaceSpace("Can you love me?Only love me." ))