【leetcode】70. (Easy) Climbing Stairs
提交程式碼:
class Solution {
public int climbStairs(int n) {
if(n==1) return 1;
if(n==2) return 2;
int tmp=3,tmp1=1,tmp2=2;
while(n-2>0) {
tmp=tmp1+tmp2;
tmp1=tmp2;
tmp2=tmp;
n--;
}
return tmp;
}
}
執行結果:
相關推薦
【leetcode】70. (Easy) Climbing Stairs
提交程式碼: class Solution { public int climbStairs(int n) { if(n==1) return 1; if(n==2) return 2; int tmp=3,tm
【LeetCode】70. Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct wa
【LeetCode】 70. 爬樓梯--簡單遞迴的應用
簡單遞迴 C++ 通過找規律發現後面數字等於前面兩項之和 於是通過簡單遞迴寫出程式如下 #include <iostream> using namespace std; int ds(int n){ if(n==0) return 0; else if (n=
【leetcode】28.(Easy)Implement strStr()
題目連結 解題思路: 這道題的意思就是找到字串中一個子串的起始位置,沒有這個子串的話返回-1。 我的做法就是簡單的蠻力法,首先找到第一個匹配的字元,然後再進一步進行判決 提交程式碼: class Solution { public int strStr(Strin
【leetcode】53. (Easy) Maximum Subarray
解題思路: 滑動視窗 提交程式碼: class Solution { public int maxSubArray(int[] nums) { if(nums.length==0) return 0; int[] values=new int[num
【LeetCode】70 爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1 階 + 1 階 2 階 示例 2: 輸入: 3 輸出: 3
【Leetcode】70. 爬樓梯
題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2
【Leetcode】 70. 爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解
【LeetCode】70. 爬樓梯——dp
題目 陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i] (索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選
【LeetCode】746. Min Cost Climbing Stairs(C++)
題目: On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once you pay the cost, you can either c
【leetcode】69. (Easy)Sqrt(x)
解題思路: 二分法,同時使用double來記錄數字 此外後面討論區有個答案還挺好的,使用mid>x/mid?來進行判斷,避免了數字型別轉換。 提交程式碼: class Solution { public int mySqrt(int x) { if(x=
【leetcode】67.(Easy)Add Binary
提交程式碼: class Solution { public String addBinary(String a, String b) { int numA,numB,carry=0; int p1=a.length()-1,p2=b.length()-1;
【leetcode】66. (Easy)Plus One
提交程式碼: class Solution { public int[] plusOne(int[] digits) { int i,num; List<Integer> tmp=new ArrayList<Integer>();
【leetcode】58. (Easy)Length of Last Word
提交程式碼: class Solution { public int lengthOfLastWord(String s) { int len=0,p=s.length()-1; while(p>=0&&s.charAt(p)
【leetcode】88.(Easy)Merge Sorted Array
解題思路: 指標從後向前走,時間複雜度為O(m+n) 提交程式碼: class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int p1=m-1,p2=n-
【leetcode】35. (Easy)Search Insert Postion(JAVA)
題目連結 解題思路: 還是折半查詢,設定三個指標分別指向陣列兩邊和中間,如果中間的值是要找的值直接返回位置座標; 如果左指標和右指標重合,說明沒有找到這個數,可以分為3個情況: 目標大於最大數時,此時指標right在陣列最右位置,返回right的下一個位置;
【leetcode】101.(Easy)Symmetric Tree
解題思路: morris遍歷+雙指標 以先序遍歷的方式遍歷根節點的左子樹,以“右子樹根節點左子樹”的方式遍歷右子樹 時間複雜度:O(n) 空間複雜度:O(1) 提交程式碼: class Solution{ public List<String> wordBreak(
【leetcode】100.(Easy)Same Tree
解題思路: 遞迴 提交程式碼: class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p==null&&q!=null) return false;
【leetcode】104.(Easy)Maximum Depth of Binary Tree
解題思路: bfs或dfs 提交程式碼:bfs class Solution { public int maxDepth(TreeNode root) { if(root==null) return 0; int
【leetcode】122.(Easy)Best Time to Buy and Sell Stock II
解題思路: 迭代更新 時間複雜度:O(n) 提交程式碼:滑動視窗 class Solution { public int maxProfit(int[] prices) { if(prices.length==0) return 0;