triangle

重载,继承,重写和多态的区别:

谁说胖子不能爱 提交于 2020-02-04 07:12:47
重载,继承,重写和多态的区别: 继承是子类获得父类的成员,重写是继承后重新实现父类的方法。 重载是在一个类里一系列参数不同名字相同的方法。 多态则是为了避免在父类里大量重载引起代码臃肿且难于维护。 网上看到一个有趣的说法是:继承是子类使用父类的方法,而多态则是父类使用子类的方法。 下面的例子包含了这四种实现: class Triangle extends Shape { public int getSides() { //重写 return 3; } } class Rectangle extends Shape { public int getSides(int i) { //重载 return i; } } public class Shape { public boolean isSharp(){ return true; } public int getSides(){ return 0 ; } public int getSides(Triangle tri){ return 3 ; } public int getSides(Rectangle rec){ return 4 ; } public static void main(String[] args) { Triangle tri = new Triangle(); //继承 System.out.println

libgdx 学习笔记四 MyFirstTriangle

那年仲夏 提交于 2020-02-03 14:08:20
Introduction(序言) 上节 HelloWorld 教程证明了如何从导入一个已有的项目构造一个libgdx应用程序。让我们进一步从上一节的基础上创建项目。本教程会更详细 假使读者是一个Eclipse的初学者。以后会有更简洁的教程。 本节的 源文件包含在 MyFirstTriangle_<data>.zip 下载地址: Downloads Creating the Desktop Project 下载最新的 nightly zip 然后 解压缩 到一个名为 libgdx-nightly 临时 目录。 大部分代码包含所有的游戏逻辑,将放在一个常规的JAVA工程。在Eclipse中 点击File -> New -> Java Project。工程名为 my-first-triangle 。 在JRE选项卡中,选择 JavaSE-1.6或者类似的,然后点击 Finish 让我们复制包含所有必要的 libgdx 类和方法的库文件到我们的工作区。右键 my-first-triangle工程 选择New -> Folder,从 libgdx-nightly 目录中 复制一下文件到libs中: gdx-backend-jogl.jar gdx-backend-jogl-natives.jar gdx-sources.jar gdx-natives.jar gdx.jar

HDU6601 Keen On Everything But Triangle 线段树或主席树

老子叫甜甜 提交于 2020-02-01 10:00:34
网址: https://vjudge.net/problem/HDU-6601 题意: 给出序列$a_1,a_2,a_3,......,a_n$代表棍子的长度,和$Q$次询问,对于第$i$次询问,在$l_i$和$r_i$的区间中选3根棍子构成三角形,输出三角形最大周长,如果组成不了或者根子不够,输出$-1$。 题解: 一、主席树做法: 直接对于每个区间查询第$1$,第$2$,$......$,一直到第$r-l+1$大,一旦发现成功的三角形则输出,如果都不行或者根子不够输出$-1$。 AC代码: #include <bits/stdc++.h> using namespace std; const int MAXN=100005; struct chieftree { struct node { int l,r,sum; }; node tr[MAXN*20]; int rt[MAXN]; int cnt; void init() { cnt=0; } void build(int &rt,int l,int r) { rt=++cnt; tr[rt].sum=0; if(l==r) return; int m=(l+r)/2; build(tr[rt].l,l,m); build(tr[rt].r,m+1,r); } void update(int &rt,int l,int r

Leetcode【78】Pascal's Triangle II

纵然是瞬间 提交于 2020-01-28 12:00:08
class Solution(object): def getRow(self, rowIndex): """ :type rowIndex: int :rtype: List[int] """ res = [1] for i in range(1, rowIndex + 1): res.insert(0, 0) # j循环每次算出r[0]...r[j-1],再加上最后一个永远存在的1,正好是rowIndex+1个数 for j in range(i): res[j] = res[j] + res[j + 1] return res 来源: CSDN 作者: 请叫我算术嘉 链接: https://blog.csdn.net/ssjdoudou/article/details/103749050

国庆练习5

妖精的绣舞 提交于 2020-01-26 03:57:45
Phone Numbers CF 1060A Description Let's call a string a phone number if it has length 11 and fits the pattern " 8xxxxxxxxxx", where each " x" is replaced by a digit. For example, " 80123456789" and " 80000000000" are phone numbers, while " 8012345678" and " 79000000000" are not. You have n n cards with digits, and you want to use them to make as many phone numbers as possible. Each card must be used in at most one phone number, and you don't have to use all cards. The phone numbers do not necessarily have to be distinct. Input The first line contains an integer n n — the number of cards with

正确理解实例方法、类方法、静态方法

帅比萌擦擦* 提交于 2020-01-25 08:38:06
实例方法 实例方法在我理解中,只能对对象调用,规定实例方法的函数中必须有self def movie ( self ) : if self . __age > 18 : print ( '%s正在看岛国爱情片' % self . __name ) else : print ( '小孩子还是看熊出没吧' ) 在定义对象之后,将消息都传给这个‘self’,也就是对象本身,所以说必须是对对象用,而不能对类使用 静态方法 在这里可以用一个例子来说明。 如果我们想计算一个三角形的面积和周长,但是给你的只有三个数,那么我们就需要首先判断这三个数能否构成三角形,因为这时候三角形都没构成,自然也就没构成三角形这一对象,所以判断函数应该使用静态方法,静态方法不需要self from math import sqrt class Triangle ( object ) : def __init__ ( self , a , b , c ) : self . _a = a self . _b = b self . _c = c @ staticmethod def is_valid ( a , b , c ) : return a + b > c and b + c > a and a + c > b def perimeter ( self ) : return self . _a + self .

2020蓝桥杯训练-C语言-枚举-F题

廉价感情. 提交于 2020-01-19 22:53:49
Make a triangle! Masha has three sticks of length a, b and c centimeters respectively. In one minute Masha can pick one arbitrary stick and increase its length by one centimeter. She is not allowed to break sticks. What is the minimum number of minutes she needs to spend increasing the stick’s length in order to be able to assemble a triangle of positive area. Sticks should be used as triangle’s sides (one stick for one side) and their endpoints should be located at triangle’s vertices. Input The only line contains tree integers a, b and c (1≤a,b,c≤100) — the lengths of sticks Masha possesses.

DTW + python 矩阵操作 + debug

你离开我真会死。 提交于 2020-01-19 00:57:10
1. from here . diagonal Return specified diagonals. diagflat Create a 2-D array with the flattened input as a diagonal. trace Sum along diagonals. triu Upper triangle of an array. tril Lower triangle of an array. 2. DTW distance. dtaidistance from dtaidistance import dtw ds = dtw.distance_matrix_fast(x) 3. sparce matrix in csr format. 4. Bug: AttributeError: module 'community' has no attribute 'best_partition' import community 但是安装包是不是安装community,而是安装pip intall python-louvain. 来源: https://www.cnblogs.com/dulun/p/12210829.html

Java多态的一些陷阱

丶灬走出姿态 提交于 2020-01-14 10:00:11
Java多态是如何实现的? Java的多态和C++一样,是通过延时绑定(late binding)或者说运行时绑定(runtime binding)来实现的。当调用某一个对象引用的方法时,因为编译器并不知道这个引用到底指向的是变量声明时说明的类型对象,还是该类型子类的对象。因此编译器无法为这次调用绑定到具体的某个方法。只有通过java中的运行时类型识别(RTTI, Runtime type identification)在运行时绑定到具体的方法。下面是一个具体的例子: class shape { public void draw() { print("shape"); } } class triangle extends shape { public void draw() { print("triangle"); } } public class Polymorphism { public static void main(String[] args) { shape s=new triangle(); s.draw(); } 结果是triangle s是一个shape引用,但是在运行时因为是triangle对象,所以还是调用了triangle的draw方法。 Java多态中的一些陷阱 重写私有方法? Java里面是不能重写私有方法的,这个其实很好理解

28. Triangle && Pascal's Triangle && Pascal's Triangle II

半世苍凉 提交于 2020-01-11 07:36:05
Triangle Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below. For example, given the following triangle [ [2], [3,4], [6,5,7], [4,1,8,3] ] The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11). Note: Bonus point if you are able to do this using only O ( n ) extra space, where n is the total number of rows in the triangle. 思想: 经典的动态规划题。 class Solution { public: int minimumTotal(vector<vector<int> > &triangle) { vector<int> pSum(triangle.size()+1, 0); for(int i = triangle.size()-1; i >= 0; --i) for(int j =