• <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 公開教育 我要投稿
        • 相關(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()當(dāng)然是指子類的方法。而這個方法打印的屬性baseName當(dāng)然也是子類的。那現(xiàn)在子類的屬性baseName的值是多少呢?答案是null.因為此時子類Sub的構(gòu)造器內(nèi)代碼本質(zhì)是:

          super();

          baseName="sub";

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

          因此,左后的值當(dāng)然是null.

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

        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. 久久免费视频77 | 亚洲综合精品在线 | 亚洲免费AV在线 | 香蕉网伊中文在线字幕视频 | 中文字幕色婷婷在线视频 | 亚洲精品国产第一综合99久久 |

            攜程在線測試題答案

              試題一:

            攜程在線測試題答案

              乘積最大:

              嘗試不同的拆分方法,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()當(dāng)然是指子類的方法。而這個方法打印的屬性baseName當(dāng)然也是子類的。那現(xiàn)在子類的屬性baseName的值是多少呢?答案是null.因為此時子類Sub的構(gòu)造器內(nèi)代碼本質(zhì)是:

              super();

              baseName="sub";

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

              因此,左后的值當(dāng)然是null.

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

            iq測試題及答案02-24

            智力測試題及答案06-12

            智商測試題及答案10-02

            情商測試題及答案02-24

            愛情測試題及答案02-24

            eq測試題及答案02-24

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

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

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