找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 7334|回复: 22
收起左侧

[Amazon] 亚麻QA工程师面经

[复制链接]

1174

主题

170

精华

3587

积分

神级会员

Rank: 7Rank: 7Rank: 7

积分
3587
发表于 2-2-2017 09:10 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 Sophia 于 2-2-2017 10:15 PM 编辑
& d+ ]$ f7 a1 b' R4 d5 I
2 l+ B5 S2 Z% Y6 c. f! {Find the maximum consecutive 1's in an array of 0's and 1's.
: n! E# ?/ }0 \" ~: I* S. KExample: 9 B8 E) [4 {, D" X/ c
a) 00110001001110 - Output :3 [Max num of consecutive 1's is 3]% Q) C5 e8 z' T; y
b) 1000010001  - Output :1 [Max num of consecutive 1's is 1]

1154

主题

153

精华

3407

积分

神级会员

Rank: 7Rank: 7Rank: 7

积分
3407
发表于 2-2-2017 09:10 PM | 显示全部楼层

// Time :O(n), Space :O(1)
0 s. D7 c+ v* Y! W! l	public static int maxNumberOf1s(String str) {
+ q  Z/ _: m6 Z  j9 I		if (null == str || str.isEmpty() || !str.contains("1")) {% I- i) M; I3 F# _5 A4 @
			return 0;
! i5 E. x+ A- G9 A		}
! V; D" a, t9 [9 n- U+ v7 g, N		int count = 0;2 J' c# H& C+ [5 n5 R: l/ F' ]
		int curCount = 0;+ ?. k( m3 U6 u; J, M9 ]
		for (int i = 0; i < str.length(); i++) {& W" e7 U0 b" i! E1 \% J# x" Z! |
			if (str.charAt(i) == '1') {
4 f7 |- G4 h: C& V6 ?				if (curCount == 0) {$ ~- {2 @/ f5 ~/ b! }4 I+ o& Z4 l
					curCount = 1;
$ w- ~" D# F7 |1 z				} else {: s4 E% l+ T4 B0 E7 d- E
					curCount++;
4 R  k* u: s3 o+ [8 L3 z. B! Y& O( e				}
, a$ I9 s: g) w% _: x3 F- {				count = Math.max(curCount, count);, X& u2 ~8 Q- O( e! r
			} else {
, ?# W7 _/ V2 U7 D, \				curCount = 0;9 H7 V. O! z. f4 Q* ^
			}' L1 I4 G3 K) |5 @9 I" W+ M/ _
		}
4 {3 w2 T+ Z; h
" o" |8 g9 Z* e4 ~9 T! C  b. j		return count;# k. H' j2 ?  o: y. L& A
	}

回复 支持 反对

使用道具 举报

1141

主题

171

精华

3486

积分

神级会员

Rank: 7Rank: 7Rank: 7

积分
3486
发表于 2-2-2017 09:10 PM | 显示全部楼层

Please check the following code.

public class Consecutive01 {6 U- f0 {0 f/ F5 Z; o$ }& W  ?
    3 G' G& G$ s, }0 _8 b6 ^- y8 e
    static int[] a= {0,1,1,0,0,0,1,1,0,0,1,0};( [9 c% K. U8 _; D* R! z, `
    
$ z+ X4 e! F# {% t    public static void main(String[] args) {7 b1 H: s2 D7 M5 v
        int sum = 0;/ T' B) y& \- Q- ~3 ]
        int max  = 0 ;
9 j! i! R7 _0 a& J/ E; I$ \- Z/ L        for(int i = 0 ; i< a.length ; i++){4 C+ g0 k8 `( V/ Y! M) h" u+ n; O. q% u
           if(a[i] == 0){8 O  T4 D* Y  v- z, f
               sum = 0;
+ g1 F4 S- X1 r           } else {
! L1 T  V& ]' N0 l8 ~* }               sum++;
* c& }) m8 c. K4 y               if(sum > max)! l% F! ^# k2 d
                   max = sum;
" }6 `& P+ T' S( y, p& b           }6 @* U) f+ a' k+ S7 p; g
        }' ]+ O% O, M( {' D0 F, l; m- A9 V! c
        5 ~6 J0 A3 D: L3 f8 c
        System.out.println("Max consecutive 1s is: "+max);
" e' Y' M: U% Y& A- g    }
8 W( L: v; s3 U/ g/ W6 c3 \4 ^/ c    ) V$ T1 y% z5 U5 ?) a
}

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表