<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            攜程在線測試題答案

            時間: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

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看