這是leetcode最簡單的題了吧!!!
本次博主給大家推薦幾個究極簡單的演算法, 簡單歸簡單,但無論難易與否,萬變不離其宗. 就由博主帶大家從易到難,慢慢更新,積累. 如有更好的演算法,還望大家分享.演算法
- 這是leetcode最簡單的題了吧!!!
- 題目需求1:
- 代碼實作
- 題目需求2:
- 代碼實作
- 題目需求3:
- 代碼實作
- 題目需求4:
- 簡化前代碼實作
- 簡化后代碼實作
題目需求1:
小A 和 小B 在玩猜數字,小B 每次從 1, 2, 3 中隨機選擇一個,小A 每次也從 1, 2, 3 中選擇一個猜,他們一共進行三次這個游戲,請回傳 小A 猜對了幾次?
輸入的guess陣列為 小A 每次的猜測,answer陣列為 小B 每次的選擇,guess和answer的長度都等于3,
代碼實作
public class Solution {
public int game(int[] guess, int[] answer) {
int count = 0;
for (int i = 0; i < 3; i++) {
if (guess[i] == answer[i]){
count+=1;
}
}
return count;
}
public static void main(String[] args) {
Solution n2 = new Solution();
System.out.println(n2.game(new int[]{1,2,3}, new int[]{1, 2, 2}));
}
}
題目需求2:
求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷陳述句(A?B:C),
代碼實作
public class Solution3 {
public int sumNums(int n) {
//等引數列求和
return (1+n)*n/2;
}
public static void main(String[] args) {
Solution3 q = new Solution3();
System.out.println(q.sumNums(3));
}
}
題目需求3:
給你一個正方形矩陣 mat,請你回傳矩陣對角線元素的和,
請你回傳在矩陣主對角線上的元素和副對角線上且不在主對角線上元素的和,

輸出:1 + 5 + 9 + 3 + 7 = 25
注意,元素 mat[1][1] = 5 只會被計算一次,
代碼實作
public class Solution4 {
int diagonal= 0;
public int diagonalSum(int[][] mat) {
for (int i=0;i<mat.length;i++){
for (int j = 0; j < mat[i].length; j++) {
if ( i==j || i+j == mat.length-1){
diagonal += mat[i][j];
}
}
}
return diagonal;
}
public static void main(String[] args) {
Solution4 s = new Solution4();
System.out.println(s.diagonalSum(new int[][]{{1,2,3},{4,5,6},{7,8,9}}));
}
}
題目需求4:
桌上有 n 堆力扣幣,每堆的數量保存在陣列 coins 中,我們每次可以選擇任意一堆,拿走其中的一枚或者兩枚,求拿完所有力扣幣的最少次數,
簡化前代碼實作
public class Solution5 {
public int minCount(int[] coins) {
int count1 = 0;
int count2 = 0;
for (int i = 0; i < coins.length; i++) {
if (coins[i] % 2 ==0){
count1 += coins[i]/2;
}
if (coins[i] % 2 !=0){
count2 += coins[i]/2+1;
}
}
return count1+count2;
}
public static void main(String[] args) {
Solution5 s = new Solution5();
System.out.println(s.minCount(new int[]{1,1,1}));
}
}
簡化后代碼實作
public class Solution5 {
public int minCount1(int[] coins) {
int c = 0;
for (int i = 0; i < coins.length; i++) {
c += coins[i] / 2;
c += coins[i] % 2;
}
return c;
}
public static void main(String[] args) {
Solution5 s = new Solution5();
System.out.println(s.minCount1(new int[]{2,5,7}));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/206298.html
標籤:其他
