- java方面:今天学习了有关多态和接口方面的知识,多态的前提条件就是覆写(Override)。这个操作的意义是在子类中定义了一个与父类方法签名完全相同的方法。然后多态的作用就是基于运行时的实际类型的动态调用,而非变量的声明类型。例如下面这个代码;
public class Main {
public static void main(String[] args) {
Person p = new Student();
p.run(); // 应该打印Person.run还是Student.run?
}
}
class Person {
public void run() {
System.out.println("Person.run");
}
}
class Student extends Person {
@Override
public void run() {
System.out.println("Student.run");
}
}
Student覆写了Person的方法然后 Person p = new Student();p.run();定义了实际类型为Student,但是引用类型为Person的变量,此时使用了run()方法,调用的方法是Student的run()方法,这就是多态的作用。
就是我今天刷的题目了。题目的描述如下
这个题目最简单的方法自然是以每个点为起点遍历后面的点然后存储最大差值就可以得到答案。我用了更加简洁的方法,就是用一个变量记录下到目前为止的最小值然后与当前的值进行比较,更新最大值,具体的状态转移方程就是这两个
min1=min(min1,prices[i]);
max1=max(max1,prices[i]-min1);具体的代码就是下面这个
class Solution {
public:
int maxProfit(vector& prices) {
int min1=10000000;
int max1=0;
int l=prices.size();
for(int i=0;i 今天的学习总结就是这些。



