久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

攜程在線測試題答案

時間:2024-06-29 01:24:19 公開教育 我要投稿
  • 相關(guān)推薦

攜程在線測試題答案

  試題一:

攜程在線測試題答案

  乘積最大:

  嘗試不同的拆分方法,dp求解或者找規(guī)律

  示例代碼:

  #include

  #include

  #include

  #include

  #define maxn 109

  using namespace std;

  long long dp[maxn][maxn];

  int solve(int n){

  long long ans = 0;

  for(int i = 0; i <= n; i++)

  ans = max(ans, dp[n][i]);

  return ans;

  }

  int main(){

  int n;

  cin >> n;

  for(int i = 0; i <= n; i++)

  dp[0][i] = 1;

  for(int i = 1; i <= n; i++){

  for(int j = 1; j <= i; j++){

  for(int k = 0 ; k < j; k++)

  dp[i][j] = max(dp[i][j], dp[i - j][k] * j);

  }

  }

  cout << solve(n) << endl;

  return 0;

  }

  拼圖:

  經(jīng)典問題,廣度優(yōu)先搜索

  示例代碼:

  import java.io.*;

  import java.util.*;

  import java.text.*;

  import java.math.*;

  import java.util.regex.*;

  import java.util.Scanner;

  import java.util.Set;

  import java.util.HashSet;

  import java.util.ArrayList;

  import java.lang.StringBuilder;

  public class Main{

  public static String destNumbers = "123456780";

  public static Set set = new HashSet();

  public static int[]moveTable = new int[]{12,14,10,13,15,11,5,7,3};

  public static ArrayList getNextMoveList(Node pNode){

  int position = pNode.numbers.indexOf("0");

  int moveStatus = moveTable[position];

  ArrayList cNodes = new ArrayList();

  for(int status=1; status <=8; status=status<<1){

  if((moveStatus & status) > 0){

  char[] charNumbers = pNode.numbers.toCharArray();

  int switchPosition = 0;

  if(status == 1){

  switchPosition = position - 3;

  } else if(status == 2){

  switchPosition = position - 1;

  } else if(status == 4){

  switchPosition = position + 1;

  } else if(status == 8){

  switchPosition = position + 3;

  }

  charNumbers[position] = charNumbers[switchPosition];

  charNumbers[switchPosition] = '0';

  String s = String.valueOf(charNumbers);

  if(!set.contains(Integer.valueOf(s))){

  set.add(Integer.valueOf(s));

  Node n = new Node(pNode, s, charNumbers[position]);

  cNodes.add(n);

  }

  }

  }

  return cNodes;

  }

  static int getResult(Node node){

  String result = "";

  while(node.parentNode != null){

  result += node.currentNum;

  node = node.parentNode;

  }

  return new StringBuffer(result).reverse().toString().length();

  }

  static int run(String numbers){

  if(numbers.equals(destNumbers)){

  return 0;

  }

  ArrayList numsList = new ArrayList();

  numsList.add(new Node(null, numbers, ' '));

  while(numsList.size() > 0){

  ArrayList tmpList = new ArrayList();

  for(Node pNode : numsList){

  ArrayList cNodes = getNextMoveList(pNode);

  for(Node cNode : cNodes){

  if(cNode.numbers.equals(destNumbers)){

  return getResult(cNode);

  }

  tmpList.add(cNode);

  }

  }

  numsList = tmpList;

  }

  return -1;

  }

  public static void main(String[] args) {

  Scanner scan = new Scanner(System.in);

  String numbers = new String();

  for(int rows=3; rows>0; rows--){

  for(String n: scan.nextLine().split(" ")){

  numbers += n;

  }

  }

  int res = run(numbers);

  System.out.println(String.valueOf(res));

  }

  }

  class Node {

  public Node(Node parentNode, String numbers, char currentNum){

  this.numbers = numbers;

  this.currentNum = currentNum;

  this.parentNode = parentNode;

  }

  public char currentNum;

  public String numbers;

  public Node parentNode;

  }

  股票交易:

  掃描序列,按照題意判斷冷卻時間,然后更新答案

  示例代碼:

  #include

  #include

  #include

  #include

  using namespace std;

  int a[1000006],dp[1000006];

  int main(){

  int n,k;

  scanf("%d",&n);

  for(int i=1;i<=n;i++) scanf("%d",&a[i]);

  scanf("%d",&k);

  int cur=-1000000000, ans=0;

  for(int i=1;i<=n;i++)

  {

  dp[i]=max(a[i]+cur, dp[i-1]);

  if(i>=k)

  cur=max(cur, dp[i-k]-a[i]);

  else

  cur=max(cur, -a[i]);

  ans=max(ans, dp[i]);

  }

  printf("%d\n",ans);

  }

  試題二:

  public class Base

  {

  private String baseName = "base";

  public Base()

  {

  callName();

  }

  public void callName()

  {

  System. out. println(baseName);

  }

  static class Sub extends Base

  {

  private String baseName = "sub";

  public void callName()

  {

  System. out. println (baseName) ;

  }

  }

  public static void main(String[] args)

  {

  Base b = new Sub();

  }

  }

  求這段程序的輸出。

  來自 未老莫還鄉(xiāng) 的評論:

  【不要在構(gòu)造器里調(diào)用可能被重載的虛方法,這是極度危險的】。構(gòu)造器的初始化順序大概是 父類靜態(tài)塊 子類靜態(tài)塊 父類初始化語句 父類構(gòu)造函器 子類初始化語句 子類構(gòu)造器。父類構(gòu)造器執(zhí)行的時候,調(diào)用了子類的重載方法,然而子類的類字段還在剛初始化的階段,剛完成內(nèi)存布局,只能輸出null。

  來自 ihuning 的精華評論:

  看我大師歸來:

  1. Base b = new Sub();

  2. Base b = 直接忽略,從 new Sub();開始

  3. 類加載器加載 Base,Sub 類到j(luò)vm;

  4. 為Base,Sub 類中的兩個屬性baseName 分配存儲空間,但是不初始化;

  注意:屬性的初始化時放在構(gòu)造器中,按照代碼順序執(zhí)行的。

  5. new Sub會調(diào)用Sub的無參構(gòu)造器,而在這個構(gòu)造器中會隱式調(diào)用父類Base的無參構(gòu)造器;

  6. 父類Base的構(gòu)造器中代碼本質(zhì)是

  public Base()

  {

  baseName = "base";

  callName();

  }

  即父類的屬性baseName 的值為base。但為何輸出null,騷年別急。

  7. 因為父類構(gòu)造器方法是在子類中調(diào)用的,即大環(huán)境是子類。此時,調(diào)用的方法callName()當然是指子類的方法。而這個方法打印的屬性baseName當然也是子類的。那現(xiàn)在子類的屬性baseName的值是多少呢?答案是null.因為此時子類Sub的構(gòu)造器內(nèi)代碼本質(zhì)是:

  super();

  baseName="sub";

  此時baseName="sub"還沒執(zhí)行。

  因此,左后的值當然是null.

【攜程在線測試題答案】相關(guān)文章:

iq測試題及答案02-24

智力測試題及答案06-12

智商測試題及答案10-02

情商測試題及答案02-24

愛情測試題及答案02-24

eq測試題及答案02-24

行政能力測試題及答案02-24

心理測試題目及答案02-24

iq智商測試題及答案10-19