Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)

文章目录

283 · 三数之中的最大值

给三个整数,求他们中的最大值。
Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)

def maxOfThreeNumbers(self, num1, num2, num3):
        # write your code here
        max_val = float('-inf')
        if num1 > num2:
            max_val = num1
        else:
            max_val = num2
        return max_val if max_val > num3 else num3

Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)

484 · 交换数组两个元素

给你一个数组和两个索引,交换下标为这两个索引的数字

Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)

def swapIntegers(self, A, index1, index2):
        # write your code here
        A[index1], A[index2] = A[index2], A[index1]

Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)

455 · 学号

实现一个名为Class的类,包含如下的一些属性和方法:

一个public的students属性,是一个Student类的数组。
一个构造函数,接受一个参数n,代表班级里有n个学生。构造函数需要创建n个学生的实例对象并放在students这个成员中,每个学生按照创建的顺序,学号需要依次标记为0, 1, 2 … n-1。

Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)
一开始没理解题,回看了之前写的。

def __init__(self, n):
        self.students = []
        for i in range(n):
            self.students.append(Student(i))

116 · 跳跃游戏

给出一个非负整数数组,你最初定位在数组的第一个位置。

数组中的每个元素代表你在那个位置可以跳跃的最大长度。

判断你是否能到达数组的最后一个位置。

Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)
我用的应该是贪心吧,不确定是贪心还是动态规划

def canJump(self, A):
        # write your code here
        for i in range(len(A) - 1, 0, -1):
            for j in range(i - 1, -1, -1):
                if j + A[j] >= i:
                    break
            else:
                return False
        return True

下面是老师上课解法,我完全不记得。
动态规划1
Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)
Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)
动态规划2

Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)
Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)
贪心法
Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)
Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)

385 · 动态数组

Leetcode 刷题必须Review 六 Lintcode(283 484 455 116 385)

class ArrayListManager:
    '''
     * @param n: You should generate an array list of n elements.
     * @return: The array list your just created.
    '''
    def create(self, n):
        # Write your code here
        if n >= 0:
            self.arr = list(range(n))
        return self.arr
    
    
    '''
     * @param list: The list you need to clone
     * @return: A deep copyed array list from the given list
    '''
    def clone(self, list):
        # Write your code here
        return list[:]
    
    
    '''
     * @param list: The array list to find the kth element
     * @param k: Find the kth element
     * @return: The kth element
    '''
    def get(self, list, k):
        # Write your code here
        return list[k]
    
    
    '''
     * @param list: The array list
     * @param k: Find the kth element, set it to val
     * @param val: Find the kth element, set it to val
    '''
    def set(self, list, k, val):
        # write your code here
        list[k] = val
    
    '''
     * @param list: The array list to remove the kth element
     * @param k: Remove the kth element
    '''
    def remove(self, list, k):
        # write tour code here
        list.remove(k)
    
    '''
     * @param list: The array list.
     * @param val: Get the index of the first element that equals to val
     * @return: Return the index of that element
    '''
    def indexOf(self, list, val):
        # Write your code here
        for i in range(len(list)):
            if list[i] == val:
                return i
        else:
            return -1
上一篇:HTML5+CSS3静态页面项目-PayPaul的总结


下一篇:arcgis-tomcat-cors