Java 演算法題筆記(五)

2021-09-17 21:53:55 字數 2327 閱讀 6201

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

示例 1:

輸入: 2

輸出: 2

解釋: 有兩種方法可以爬到樓頂。

1. 1 階 + 1 階

2. 2 階

示例 2:

輸入: 3

輸出: 3

解釋: 有三種方法可以爬到樓頂。

1. 1 階 + 1 階 + 1 階

2. 1 階 + 2 階

3. 2 階 + 1 階

動態規劃

爬上第n 層樓梯,是一般有兩種方法,第n-1 層爬一層到達,或者是第n-2 層爬兩層到達,以此類推,再算出第n-1 層與第n-2 的層,所以可以用遞迴,但是反過來的遞推效率更高,即前面可知第n 層可以由第n-2 層與第n-1 層,然後不斷算到第n 層。

public int climbstairs(int n) 

return sum;

}

法二

遞迴超時,所以加入map ,把算過的存一下,如果再用到就不算了,節省效能開銷,提高效率。

mapmap = new hashmap<>();

public int climbstairs(int n) else

}

給定兩個二進位制字串,返回他們的和(用二進位制表示)。

輸入為非空字串且只包含數字10

示例 1:

輸入: a = "11", b = "1"

輸出: "100"

示例 2:

輸入: a = "1010", b = "1011"

輸出: "10101"

public string addbinary(string a, string b) 

int t_b = new int[len];

for (i = 0; i < len_b; i++)

int temp = 0; // 進製值,進製的話該值為1

int res = new int[len];

for (i = len-1;i >= 0;i--)

stringbuilder sb = new stringbuilder();

for (i = 0; i < len; i++)

break;}}

if (i == len)

return "0";

return sb.tostring();

}/**

* 由二進位制相加的特點

*/public int getresult(int i, int j, int temp)

/*** 獲取進製值0,1 都不進製,所以返回0

* > 1 才進製

*/public int gettemp(int i, int j, int temp)

給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。

示例 1:

輸入:[1,2,3,4,5,6,7] 和 

k= 3輸出:[5,6,7,1,2,3,4]解釋:向右旋轉 1 步: [7,1,2,3,4,5,6]

向右旋轉 2 步: [6,7,1,2,3,4,5]

向右旋轉 3 步: [5,6,7,1,2,3,4]

示例 2:

輸入:[-1,-100,3,99] 和 k = 2輸出:[3,99,-1,-100]解釋:向右旋轉 1 步: [99,-1,-100,3]

向右旋轉 2 步: [3,99,-1,-100]

取模運算

public void rotate(int nums, int k) 

system.arraycopy(temp, 0, nums, 0, nums.length);

}

Java基礎演算法練習五題 (4)

16.輸出九九乘法表 package com.myd.ex4 public class multinine system.out.println 17.猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了乙個 第二天早上又將剩 下的桃子吃掉一半,又多吃了乙個。以後每天 早上都吃了前...

Java 演算法題筆記(二,二維陣列)

力扣刷到的一題,做一下筆記。思路先找出格仔裡所有腐爛的橘子,然後這些橘子每傳染一次,記深度 1 直到不能再傳染了為止,再去判斷這些橘子裡,是否還有好橘子,如果有則為不能完全傳染,返回 1 如果沒有則為能全部傳完,那就返回深度值。原來,dr,dc 是控制上下左右移動的,這裡寫的是上,左,下,右 pub...

演算法題 LeetCode刷題(五)

資料結構和演算法是程式設計路上永遠無法避開的兩個核心知識點,本系列 演算法題 旨在記錄刷題過程中的一些心得體會,將會挑出leetcode等最具代表性的題目進行解析,題解基本都來自於leetcode官網 本文是第五篇。給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以...