day19_0516
选择题
根据完全二叉树的性质,满二叉树和完全二叉树可以按层序进行顺序存储,但一般的二叉树不适用。堆可以用一维数组来存储也可以用完全二叉树来直观地表示堆的结构。队列、栈本身就是顺序存储的。
首先内存只有100Mb,而数据却有1Gb,所以肯定没法一次性放到内存去排序,只能用外部排序,而外排序通常是使用多路归并排序,即将原文件分解成多个能够一次性装入内存的部分(如这里的100Mb),分别把每一部分调入内存完成排序(根据情况选取适合的内排算法),然后对已经排序的子文件进行多路归并排序。
MOD()方法 就是取模 key%13
线性表=线性表的链式存储结构。
一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。
深度:根节点是第一层,然后依次向下,
另外该系统结构图宽度为5
编程
汽水瓶
![]()
用手里的瓶子去兑换,能换多少还多少,然后下一次继续拿着瓶子去换,直到换不了为止。
注意:可以找老板借瓶子,但只有差一个瓶子时找老板借才能还的上,也就是说你只有两个瓶子时借一个兑换在得到一个空瓶子换个老板
public class Bottle { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNextInt()){ int n=sc.nextInt(); if(n==0){ break; }else{ System.out.println(bottle(n,0)); } } } public static int bottle(int n,int m){ if(n+m<2){ return 0; } if(n+m==2){ m+=1; } int num=(n+m)/3; m=(n+m)%3; return num+bottle(num,m); } }
超找两个字符串a,b中的最长公共子串
contain()判断包含指定元素
import java.util.Scanner; public class Main{ public static void main(String []args){ Scanner sc=new Scanner(System.in); String s1=sc.nextLine(); String s2=sc.nextLine(); if(s1.length()>s2.length()){ String temp=s1; s1=s2; s2=temp; } int maxlen=0; int start=0; for(int i=0;i<s1.length();i++){ if(s1.length()-i-1<=maxlen){ //遍历到i剩下的长度小于等于maxlen,就没必要继续了; break; } //k向j靠近是为了保证当有多个相同长度公共字符串出现时,取先出现的 for (int j = i,k=s1.length();k>j; k--) { String s=s1.substring(j,k); if(s2.contains(s)&&maxlen<s.length()){ maxlen=s.length(); start=j; break; } } } System.out.println(s1.substring(start,start+maxlen)); } }