2018-08-13

2018-08-14  本文已影响0人  千千鱼

1. 二维数组的查找

class Solution:
    # array 二维列表
    def Find(self, target, array):
        # write code here
        m = len(array)
        n = len(array[0])
        j = n-1
        i = 0
        while(i<m and j>=0):
            if(array[i][j] == target):
                return True
            elif(array[i][j] >target):
                j=j-1
            else:
                i=i+1
        return False
        
if __name__=='__main__':
    target = 7
    array =  [[1,3,4],[2,5,8],[3,7,9]]       
    solution = Solution()
    ans = solution.Find(target,array)
    print(ans)

总结: array类型没有array.size(),要用len取长度

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
       ans = '%20'.join(s.split(' '))
       return ans

总结: s.split()本身会形成一个列表,不需要额外加[]

  1. 链表值逆序生成列表
# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    # 返回从尾部到头部的列表值序列,例如[1,2,3]
    def printListFromTailToHead(self, listNode):
        # write code here
        list = []
        while(listNode):
            list.append(listNode.val)
            listNode = listNode.next
        return list[::-1]

总结: 先是没有注意看上面注释掉的代码,其中有链表节点的定义。 然后还有就是判断当前节点是否为空,直接while(listNode)就可以了,没有==null这种判断

  1. 重建2叉树

![][D1A9.png]
(https://img.haomeiwen.com/i1852453/f7f9055a10a8f413.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

此题难度有点大,但还是有思路的,实现起来遇到些问题,递归用self.func,而且前序遍历和中序遍历有点混了。

上一篇 下一篇

猜你喜欢

热点阅读