• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 攜程在線測試題答案

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

        攜程在線測試題答案

          試題一:

        攜程在線測試題答案

          乘積最大:

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

          示例代碼:

          #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;

          }

          拼圖:

          經典問題,廣度優先搜索

          示例代碼:

          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();

          }

          }

          求這段程序的輸出。

          來自 未老莫還鄉 的評論:

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

          來自 ihuning 的精華評論:

          看我大師歸來:

          1. Base b = new Sub();

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

          3. 類加載器加載 Base,Sub 類到jvm;

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

          注意:屬性的初始化時放在構造器中,按照代碼順序執行的。

          5. new Sub會調用Sub的無參構造器,而在這個構造器中會隱式調用父類Base的無參構造器;

          6. 父類Base的構造器中代碼本質是

          public Base()

          {

          baseName = "base";

          callName();

          }

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

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

          super();

          baseName="sub";

          此時baseName="sub"還沒執行。

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

        【攜程在線測試題答案】相關文章:

        iq測試題及答案02-24

        智力測試題及答案06-12

        智商測試題及答案10-02

        情商測試題及答案02-24

        愛情測試題及答案02-24

        eq測試題及答案02-24

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

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

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

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲欧美在线视频播放 | 一区二区三区AV大片 | 最新在线精品国自产一区 | 亚洲欧洲日本无在线码播放 | 亚洲中文字幕五码专区 | 最新欧美在线观看亚洲精品福利片 |