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

283 · 三数之中的最大值

给三个整数,求他们中的最大值。
在这里插入图片描述

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

在这里插入图片描述

484 · 交换数组两个元素

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

在这里插入图片描述

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

在这里插入图片描述

455 · 学号

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

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

在这里插入图片描述
一开始没理解题,回看了之前写的。

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

116 · 跳跃游戏

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

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

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

在这里插入图片描述
我用的应该是贪心吧,不确定是贪心还是动态规划

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
在这里插入图片描述
在这里插入图片描述
动态规划2

在这里插入图片描述
在这里插入图片描述
贪心法
在这里插入图片描述
在这里插入图片描述

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值