找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6980|回复: 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 编辑 1 Y1 A) P# R5 x+ O) Y4 h

* k8 l" I5 T3 d" _8 V9 e4 ~Find the maximum consecutive 1's in an array of 0's and 1's.! i7 K' I9 \6 R% V- z
Example:
$ q) w8 y0 M. la) 00110001001110 - Output :3 [Max num of consecutive 1's is 3]
( ^0 w, m1 F2 t' g; y; Rb) 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)! u: S/ ]# B$ {/ p' w
	public static int maxNumberOf1s(String str) {
2 C0 ?# K' Q+ f7 G0 O) Y		if (null == str || str.isEmpty() || !str.contains("1")) {
) H  H4 w( N7 J4 I+ g! o			return 0;
) Q  o8 _: \! m# a9 V		}( t- _9 N/ ~8 G0 t+ T" b
		int count = 0;. o# V# ]$ I" e) G6 \% x3 r0 P5 w7 P
		int curCount = 0;
. ?- f1 I/ N9 D) o4 H, z4 M		for (int i = 0; i < str.length(); i++) {
' C2 ?. h4 {* \; j! c+ l0 t2 Q			if (str.charAt(i) == '1') {
( S9 f$ }  }/ z6 u				if (curCount == 0) {" g% u6 c7 ]% q
					curCount = 1;
3 z: [" o" P- M! _				} else {
# e/ j3 H- J# M2 J3 h% V  a- c					curCount++;
: X- }4 ^' F9 [+ ]				}
9 P$ u- y; {/ c' Z9 |6 {& ~% \6 P				count = Math.max(curCount, count);; P! z" X# b. X
			} else {
* U6 O3 f: M% M5 h0 U7 y4 n* J4 F				curCount = 0;
" s# P9 E5 h8 G+ q9 v% K			}
# v5 Y; K4 N, N( ?% T		}* P) n3 B) K. H, ?8 s) E

. O% J# X+ R; e. |& _1 f		return count;$ ]# w$ ^) Y; i. B+ z, ~* |( C
	}

回复 支持 反对

使用道具 举报

1141

主题

171

精华

3486

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

Please check the following code.

public class Consecutive01 {' J2 Z+ [% H" \6 k
    
: a) H/ y! F8 k$ B' U8 Z    static int[] a= {0,1,1,0,0,0,1,1,0,0,1,0};
" X$ ?/ D6 i* S/ N    $ h4 t* S$ ~5 y
    public static void main(String[] args) {
1 v4 n4 i5 X) p7 A        int sum = 0;9 n  @; E, u3 M# ^% A
        int max  = 0 ;3 y  m3 }" |. a- j+ L$ m
        for(int i = 0 ; i< a.length ; i++){
$ x  @- t4 B. T" Q           if(a[i] == 0){* v" L5 O5 c' k& l* Y/ [
               sum = 0;& V/ m' W6 t3 C) p( d
           } else {, q0 a5 b- B1 Z1 R# E
               sum++;' x2 P9 y& N2 I, z
               if(sum > max)
6 a0 k% `5 n2 u                   max = sum;
' |8 }2 q% @0 O           }+ O. h% c+ ~; C9 \, Q' i
        }
* Y9 _, A: j; h. T        2 m8 }8 {. P; b7 a7 x
        System.out.println("Max consecutive 1s is: "+max);
( N( J8 v3 q6 U, f  f# K( [    }2 I( M- T' k% M8 x/ c" L9 R$ w( u
    
2 y" B3 j2 R: W1 A* G}

回复 支持 反对

使用道具 举报

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

本版积分规则

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