找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[Amazon] 亚麻QA工程师面经

[复制链接]

1162

主题

170

精华

3559

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

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

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

x
本帖最后由 Sophia 于 2-2-2017 10:15 PM 编辑
" S: i7 o! h2 H# a
, s+ _, Y, x; j, l" S" sFind the maximum consecutive 1's in an array of 0's and 1's.5 q8 j2 G, D" ?& n
Example: # n$ K$ p8 r7 R( b+ `1 c
a) 00110001001110 - Output :3 [Max num of consecutive 1's is 3]
" `) K: J1 e0 U2 ^) p* |b) 1000010001  - Output :1 [Max num of consecutive 1's is 1]

1141

主题

152

精华

3358

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

// Time :O(n), Space :O(1)
# Z+ s4 S& R8 H) Y; T6 K$ @	public static int maxNumberOf1s(String str) {% C% {+ V/ |% l# X
		if (null == str || str.isEmpty() || !str.contains("1")) {
. ^5 D9 m; F! e			return 0;
3 s" V( ^8 \, }  I. T		}
. u/ p! c0 n; y$ {6 B4 ?; V		int count = 0;8 @* ?0 l& i7 R6 j" n
		int curCount = 0;
- g( t. T0 U- k; s. u1 {		for (int i = 0; i < str.length(); i++) {: c, V9 V9 b- m
			if (str.charAt(i) == '1') {
# b8 m+ M' p2 R% @+ a				if (curCount == 0) {4 t$ g. v7 g" Y, P$ |0 U/ `$ T
					curCount = 1;
5 `/ z: u9 `$ S5 E2 o				} else {
2 `' F# y+ d1 N					curCount++;
' U1 t5 n3 V. @				}
) n# n& f/ B8 f- d; B5 B				count = Math.max(curCount, count);4 n8 g7 w4 V0 t. A) L0 @
			} else {+ e' {% e1 g& W4 Z! C
				curCount = 0;
4 T4 @' X3 x2 r4 f3 Y			}6 s5 w: e* G8 n9 R
		}) m( h7 B" u, r5 K

9 G3 V8 [, U  x+ e7 ~4 g0 S9 T( d		return count;3 Z/ x2 s/ A5 {& {, w( F6 q& I
	}

回复 支持 反对

使用道具 举报

1132

主题

171

精华

3468

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

Please check the following code.

public class Consecutive01 {' P* ~0 G/ J6 r
    $ H7 a0 I, S  a) j* C$ J1 `# w
    static int[] a= {0,1,1,0,0,0,1,1,0,0,1,0};
+ u! {1 S& ]1 c& y/ f    * F" `& Q1 @" {% E+ K7 N3 r" p
    public static void main(String[] args) {2 H1 J/ P/ F% f1 E! k
        int sum = 0;
, Y6 B7 ]# p' W" a0 I% P2 W        int max  = 0 ;
1 m9 O. T( s6 R4 C" Z6 u5 {& a        for(int i = 0 ; i< a.length ; i++){
/ `, q5 [! c# M, `0 t           if(a[i] == 0){( w$ n& N! M$ n5 ^9 |
               sum = 0;( ]( ~) Y- e. L# z2 z" b) M
           } else {3 }5 I5 X: [  Q9 U. M- ~
               sum++;9 N. a! s& C0 R4 v- N
               if(sum > max)
6 x- z) s+ U; I) x* A                   max = sum;3 v! ?5 U/ e, W6 i! Y3 x: @! _9 ]6 L
           }( i' n' T& B. V7 S, j! O
        }' R5 M9 H8 o5 D6 P8 V6 a+ k$ p
        
% l3 Z/ b1 |# d% }# e9 U2 d" b: g        System.out.println("Max consecutive 1s is: "+max);2 @/ t* ]6 `+ A' y6 x
    }
6 G! L1 j  _6 C4 q0 m: Z4 h( f6 M0 p    - p! j: D2 j# G
}

回复 支持 反对

使用道具 举报

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

本版积分规则

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