Java軟件訓(xùn)練題庫是程序員面試備考時非常關(guān)鍵的一部分內(nèi)容。通過練習(xí)各種難度的編程題目,可以提高解決問題的能力和編程效率。以下是一些常見的Java軟件訓(xùn)練題庫和答案。
1. LeetCode:LeetCode是一個非常流行的編程題庫,覆蓋面廣泛,題目難度從簡單到困難不等。可以在LeetCode上找到很多Java編程問題,包括數(shù)組、鏈表、樹、圖和動態(tài)規(guī)劃等。以下是LeetCode的一個示例題目和相應(yīng)的Java代碼:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode dummy = new ListNode(0); ListNode cur = dummy; int carry = 0; while (l1 != null || l2 != null) { int num1 = l1 == null ? 0 : l1.val; int num2 = l2 == null ? 0 : l2.val; int sum = num1 + num2 + carry; carry = sum / 10; cur.next = new ListNode(sum % 10); cur = cur.next; if (l1 != null) l1 = l1.next; if (l2 != null) l2 = l2.next; } if (carry >0) { cur.next = new ListNode(carry); } return dummy.next; } }
2. HackerRank:HackerRank是一個面向開發(fā)人員的技能測驗(yàn)平臺,旨在幫助人們提高編程技能。該平臺提供從基礎(chǔ)到高級的Java編程問題,其中包括數(shù)據(jù)結(jié)構(gòu)、算法、面向?qū)ο缶幊獭DBC和操作系統(tǒng)等。以下是HackerRank的一個示例題目和相應(yīng)的Java代碼:
import java.util.*; public class Solution { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int m = scanner.nextInt(); Setset1 = new HashSet<>(); Set set2 = new HashSet<>(); for (int i = 0; i< n; i++) { set1.add(scanner.nextInt()); } for (int i = 0; i< m; i++) { set2.add(scanner.nextInt()); } set1.retainAll(set2); List list = new ArrayList<>(set1); Collections.sort(list); for (int i : list) { System.out.print(i + " "); } } }
3. Codewars:Codewars是一個程序員社區(qū),提供面向程序員的編程挑戰(zhàn),并允許用戶評級和評分解決方案。該平臺提供Java編程問題,包括算法、字符串、模塊化和Web開發(fā)等。以下是Codewars的一個示例題目和相應(yīng)的Java代碼:
public class Kata { public static boolean isTriangle(int a, int b, int c) { if (a<= 0 || b<= 0 || c<= 0) { return false; } if (a + b >c && b + c >a && a + c >b) { return true; } else { return false; } } }
總之,Java軟件訓(xùn)練題庫是提高編程技能和學(xué)習(xí)Java的最佳途徑之一。通過不斷練習(xí),我們可以了解各種不同的編程概念、算法、數(shù)據(jù)結(jié)構(gòu)和最佳實(shí)踐,從而成為一名出色的Java程序員。