給定一個二進制數組, 計算其中最大連續1的個數。java
示例 1:編程
輸入: [1,1,0,1,1,1]
輸出: 3
解釋: 開頭的兩位和最後的三位都是連續1,因此最大連續1的個數是 3.
注意:數組
輸入的數組只包含 0 和1。
輸入數組的長度是正整數,且不超過 10,000。測試
本人思路: 想利用兩個數組,一個是原題目中的數組,一個是自定義數組count,count數組的做用是用來存儲出現連續1後1的數量,好比 [1,0,1,1,1,0,0,1,1]這個數組,數組中是否每個count索引存儲出現連續1時1的數量,count[0]=1,count[1]=3,count[2]=2。採用for的嵌套循環,外層循環控制新數組的索引,內層循環用來控制原數組對連續1進行計數,每當碰到1就對count對應索引的元素加一,碰到0就退出本層循環,爲了不內層循環從頭開始繼續,須要用外層的變量對內層變量進行初始化。最後對count數組進行遍歷以後提取出最大元素。
class Solution { public int findMaxConsecutiveOnes(int[] nums) { int[] count = new int[1000000]; int max =0; for(int j =0;j<count.length;j++) { for(int i=j;i<nums.length;i++) { if(nums[i]==1) { count[j]++; } if(nums[i]==0) { break; } } } for(int j =0;j<count.length;j++) { if(count[j]>max) { max = count[j]; } } return max; } }
有一頭母牛,它每一年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每一年年初也生一頭小母牛。請編程實如今第n年的時候,共有多少頭母牛?spa
輸入數據由多個測試實例組成,每一個測試實例佔一行,包括一個整數n(0<n<55),n的含義如題目中描述。
n=0表示輸入數據的結束,不作處理。code
對於每一個測試實例,輸出在第n年的時候母牛的數量。
每一個輸出佔一行。blog
2 4 5 0
2 4 6
本人思路:
首先觀察題目,不難發現母牛在前三年內的數量都爲1,但在第4年開始,牛的總數等於前一年和前第三年這兩年牛數量的總和,這不由讓我想到了斐波那契數列數列,這個數列從第3項開始,每一項都等於前兩項之和。
因此咱們只須要定義第一年和第三年牛的總數,就能夠利用循環計算出對應年份的牛的總數。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Scanner sc = new Scanner(System.in); int[] num = new int[3]; int i =0; //hasNext使得判斷爲true時不斷輸入。 while(sc.hasNext()) { int n = sc.nextInt(); if(n==0) { break; } num[i] = cownum(n); i++; } for (int j =0;j<num.length;j++) { System.out.println(num[j]); } } public static int cownum(int x) { //定義一個長度爲60的數組 int[] a = new int[60]; a[0] = 1; a[1] = 2; a[2] = 3; //類斐波那契數列 for(int i=3;i<x;i++) { a[i] = a[i-1]+a[i-3]; } return a[x-1]; } }
10
1534
我的思路:
既然知道最後只剩下了一個桃子,咱們不妨採用逆向推理,從最後剩下的一個桃子上作文章,找出初始桃子總數和下一臺你桃子總數之間的關係爲2n+2,採用遞歸的方法輕鬆解決這道題目,關鍵的遞歸的條件就是咱們知道最後僅僅剩下一個桃子。
僞代碼題解:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int day = sc.nextInt(); System.out.println(eat(day)); } private static int eat(int n){ if (n==1){ return 1; } return(2+2*eat(n-1)); } }