2022.06.26 华为od机试真题
生活随笔
收集整理的這篇文章主要介紹了
2022.06.26 华为od机试真题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
華為od機(jī)試真題
- 1.最長連續(xù)子串
- 2.正方形數(shù)量
- 3.二叉樹層次遍歷(不會做)
1.最長連續(xù)子串
有N個正整數(shù)組成的一個序列給定一個整數(shù)sum求長度最長的的連續(xù)子序列使他們的和等于sum返回次子序列的長度如果沒有滿足要求的序列 返回-1案例1:輸入1,2,3,4,26輸出3解析:1,2,3和4,2兩個序列均能滿足要求所以最長的連續(xù)序列為1,2,3 因此結(jié)果為3示例2:輸入1,2,3,4,220輸出-1解釋:沒有滿足要求的子序列,返回-1備注: 輸入序列僅由數(shù)字和英文逗號構(gòu)成數(shù)字之間采用英文逗號分割序列長度 1<=N<=200輸入序列不考慮異常情況由題目保證輸入序列滿足要求 import java.util.ArrayList; import java.util.List; import java.util.Scanner;/*** @author CZM* @date 2022 06 26 20:12*/ // 最長連續(xù)子串 public class test02 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String line = sc.nextLine();int num = Integer.parseInt(sc.nextLine());String[] split = line.split(",");List<Integer> list = new ArrayList<>();for (int i = 0; i < split.length; i++){list.add(Integer.parseInt(split[i]));}int count = -1;for (int i = 0; i < list.size(); i++){if (list.get(i) == num) {count = Math.max(1,count);} else if (list.get(i) < num) {int sum = 0;int start = i;while (start < list.size()){sum += list.get(start);if (sum == num) {count = Math.max(count, start+1-i);break;} else if (sum > num){break;} else {start++;}}}}System.out.println(count);} } 題目描述輸入N個互不相同的二維整數(shù)坐標(biāo),求這N個坐標(biāo)可以構(gòu)成的正方形數(shù)量。[內(nèi)積為零的的兩個向量垂直]輸入描述第一行輸入為N,N代表坐標(biāo)數(shù)量,N為正整數(shù)。N <= 100之后的 K 行輸入為坐標(biāo)x y以空格分隔,x,y為整數(shù),-10<=x, y<=10輸出描述輸出可以構(gòu)成的正方形數(shù)量。示例 1輸入31 32 43 1輸出0 (3個點不足以構(gòu)成正方形)示例 2 輸入40 01 23 12 -1輸出12.正方形數(shù)量
import java.util.ArrayList; import java.util.List; import java.util.Scanner;/*** @author CZM* @date 2022 06 26 20:12*/ // 正方形數(shù)量 public class test03 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int num = Integer.parseInt(sc.nextLine());List<String> list = new ArrayList<>();for (int i = 0; i < num; i++) {list.add(sc.nextLine());}int count = 0;if (num <= 3) {System.out.println(count);return;}for (int i = 0; i<list.size(); i++) {String str = list.get(i);String[] split = str.split(" ");int x1 = Integer.parseInt(split[0]);int y1 = Integer.parseInt(split[1]);for (int j = i + 1; j<list.size(); j++) {String str1 = list.get(j);String[] split1 = str1.split(" ");int x2 = Integer.parseInt(split1[0]);int y2 = Integer.parseInt(split1[1]);int x31 = x1 - (y1-y2);int y31 = y1 + (x1-x2);int x41 = x2 - (y1-y2);int y41 = y2 + (x1-x2);int x32 = x1 + (y1-y2);int y32 = y1 - (x1-x2);int x42 = x2 + (y1-y2);int y42 = y2 - (x1-x2);if (list.contains(x31 + " " + y31) && list.contains(x41 + " " + y41)) {count++;}if (list.contains(x32 + " " + y32) && list.contains(x42 + " " + y42)) {count++;}}}System.out.println(count / 4);} }3.二叉樹層次遍歷(不會做)
題目描述有一棵二叉樹,每個節(jié)點由一個大寫字母標(biāo)識(最多26個節(jié)點)。現(xiàn)有兩組字母,分別表示后序遍歷(父節(jié)點->左孩子->右孩子)和中序遍歷(左孩子->父節(jié)點->右孩子)的結(jié)果,請你輸出層次遍歷(左孩子->右孩子->父節(jié)點)的結(jié)果輸入描述輸入1行,分別表示后序遍歷(父節(jié)點->左孩子->右孩子)和中序遍歷(左孩子->父節(jié)點->右孩子)的結(jié)果。輸出描述輸出層次遍歷(左孩子->右孩子->父節(jié)點)的結(jié)果。示例 輸入CBEFDA CBAEDF輸出ABDCEF說明:(如下圖)總結(jié)
以上是生活随笔為你收集整理的2022.06.26 华为od机试真题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决:(iptables failed:
- 下一篇: 多重引导IOS