找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[Amazon] 亚麻QA工程师面经

[复制链接]

1172

主题

170

精华

3583

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

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

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

x
本帖最后由 Sophia 于 2-2-2017 10:15 PM 编辑
7 s3 l9 G8 T$ J. y% `2 K
% ?2 m9 Q% b; O6 U9 I; `/ V0 w: J0 {. CFind the maximum consecutive 1's in an array of 0's and 1's.8 [  _) ^1 t4 q" p' M4 I# W
Example:
% i. J& B/ S* l) S5 l5 ta) 00110001001110 - Output :3 [Max num of consecutive 1's is 3]
/ K/ Z" D( @. K8 X; Jb) 1000010001  - Output :1 [Max num of consecutive 1's is 1]

1153

主题

153

精华

3405

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

// Time :O(n), Space :O(1)$ A6 b% t8 b6 J* \9 s; g$ m: P
	public static int maxNumberOf1s(String str) {
4 u' _5 V, @9 J/ z- \! `! `2 R		if (null == str || str.isEmpty() || !str.contains("1")) {
" Y/ O( ]1 J# L			return 0;3 h% b6 f6 w/ u& ]: K) f
		}; ]  _1 s. A, e$ V9 ]" M
		int count = 0;
( f( _' P4 a+ }: ?4 ], u		int curCount = 0;
" R% n) C" ?6 h( v		for (int i = 0; i < str.length(); i++) {
" Y+ E0 _& i% O2 C$ n			if (str.charAt(i) == '1') {
8 P( w8 w+ C; ^- Z6 U9 j% L				if (curCount == 0) {
& ?. H: L8 `) ?. z  ^" q7 q! r					curCount = 1;
8 p+ e- F3 Q, p; q				} else {
. D3 f6 U& O& {- b					curCount++;5 K2 d* v6 H% V( Y% _& p
				}, N$ Y, N1 e& j" S! {0 v4 u, Q
				count = Math.max(curCount, count);
$ w4 p+ ~+ L/ b* w8 ?2 S, F8 E			} else {! D7 _5 T5 U- [/ f
				curCount = 0;
- ?/ q# D" ]# B3 x$ V' }			}9 |& {$ Q; R# F3 s& c
		}6 I- s0 U/ ^9 J9 O5 a

9 `: K+ h! {# Y6 X		return count;4 C. o3 D: s9 z! `( _
	}

回复 支持 反对

使用道具 举报

1140

主题

171

精华

3484

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

Please check the following code.

public class Consecutive01 {* {1 Q' m4 d8 u( q3 f0 ^" r
    0 h  E5 H, A0 U4 \
    static int[] a= {0,1,1,0,0,0,1,1,0,0,1,0};5 k; M" K7 T$ H! O7 q8 L9 }
    
* w! K' B: ^+ D( |    public static void main(String[] args) {
% |% [4 L1 N( S) Z1 v! w        int sum = 0;: V, M* f6 o% s% f& g0 q; G) H4 M
        int max  = 0 ;- G3 K2 m6 i. k7 _. X7 Q
        for(int i = 0 ; i< a.length ; i++){; ?3 a" ~: _8 o) e7 I# S6 p
           if(a[i] == 0){
8 `& @0 |3 T% x0 Z% T               sum = 0;  F+ i% ?# h4 Z+ I# V6 S; f( r
           } else {9 e- \! W9 M3 K
               sum++;+ j' U2 P  x$ q. C
               if(sum > max)
4 F' k7 K; b/ N6 H( p$ j( r                   max = sum;+ I# R: l; o5 Y
           }1 e8 V6 q  z: D9 `
        }; O% k2 Z" i; h
        + F- B, T( Z4 X. o
        System.out.println("Max consecutive 1s is: "+max);
* f$ l5 ~( H, L    }
3 h0 S& K& `( P+ V8 [0 z    / d" S4 P& I$ s6 k/ _/ Y/ m3 ?) m
}

回复 支持 反对

使用道具 举报

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

本版积分规则

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