找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6446|回复: 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 编辑 8 X. w# q$ [0 m5 x

1 O9 u) Q" ~: J2 xFind the maximum consecutive 1's in an array of 0's and 1's.
( e2 f2 B6 [" GExample: 9 C4 \$ |# O" |, {& l, A
a) 00110001001110 - Output :3 [Max num of consecutive 1's is 3]  `( H1 F% I5 s
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). z( x/ y4 g& x: C; i! [) N
	public static int maxNumberOf1s(String str) {" ~# i& I- P  v; H8 h
		if (null == str || str.isEmpty() || !str.contains("1")) {
# j6 Z( I9 w+ w4 h			return 0;
, z9 s$ v% M/ Z4 E) L* G		}
- [. l) [+ A" d) {: B		int count = 0;
$ R+ @( A5 J2 N+ E6 c9 `* M		int curCount = 0;4 m( j6 J* k/ d+ M* e( d' m
		for (int i = 0; i < str.length(); i++) {. H0 b. A9 M; |
			if (str.charAt(i) == '1') {
$ D, w9 j/ y5 @3 _' j				if (curCount == 0) {9 ~* o# }# L2 G) _! \7 j* k
					curCount = 1;+ n1 D( h: b% C. Y7 t  z
				} else {$ s  b8 K" `' A$ q) S
					curCount++;
7 J: y) \, d7 m. I, v, C				}
% X* U. }! u6 z' T				count = Math.max(curCount, count);
4 W$ _0 d) p" `* [' N			} else {1 F' o1 R- {) a/ j4 Q3 g; u; X: v
				curCount = 0;
+ c5 E. D- a" {* s8 k9 y: m			}& ]5 p  O, w0 r8 d- u/ u
		}6 o0 P2 j% U  d  Z& s$ c
" B7 Q6 [) q/ R! E; R
		return count;
* T( ?4 @: I& P' S" X+ R# ]' @5 I	}

回复 支持 反对

使用道具 举报

1141

主题

171

精华

3486

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

Please check the following code.

public class Consecutive01 {
0 _* F# G. U1 N+ ^      _3 S+ S. X- H7 x- P4 A
    static int[] a= {0,1,1,0,0,0,1,1,0,0,1,0};
8 k# y; Q) d! d# H    7 M0 p5 h: f' D' I& V# k
    public static void main(String[] args) {
' v) r6 @0 T6 E4 U: X        int sum = 0;
5 h; _  u* z" Q$ C5 O0 u  C) J4 U7 z        int max  = 0 ;
8 T8 A. I6 g3 |" T: {        for(int i = 0 ; i< a.length ; i++){
0 w6 ^, d2 c# d& H           if(a[i] == 0){
. k9 @5 B# g7 o/ P* [- e, {               sum = 0;
4 ~! A! W6 j5 V           } else {3 F  U* C5 J& _; _+ c
               sum++;6 O1 u/ `1 z& n8 H! X* P
               if(sum > max)" J1 n9 h/ a* r, f
                   max = sum;+ O$ s/ p, _$ _; u; G4 Z0 d& L: [
           }
$ N" M! a, N5 j! L# m        }( y+ b/ p. k0 p3 H! `
        & D. a8 K0 W, e; D0 x
        System.out.println("Max consecutive 1s is: "+max);7 B* A0 x6 R! Z; H6 l+ Z$ R
    }' r7 @  ]# |: x7 y6 T! Z
    
3 o; }! k. |& K$ Z}

回复 支持 反对

使用道具 举报

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

本版积分规则

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