找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[Amazon] 亚麻QA工程师面经

[复制链接]

1167

主题

170

精华

3573

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

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

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

x
本帖最后由 Sophia 于 2-2-2017 10:15 PM 编辑
0 N/ j  O2 H1 r# z+ @% U- Z3 x# B/ `% G% F: M' B4 t' P
Find the maximum consecutive 1's in an array of 0's and 1's.9 D* ^9 K$ o2 ~9 U  B
Example: 5 ?% t- f* @9 C
a) 00110001001110 - Output :3 [Max num of consecutive 1's is 3]- Z" y/ R. L  d& F' `+ q# s$ M3 I0 s
b) 1000010001  - Output :1 [Max num of consecutive 1's is 1]

1151

主题

153

精华

3401

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

// Time :O(n), Space :O(1)
, w% s# j7 I/ G# n8 Y6 ~/ _' \& o	public static int maxNumberOf1s(String str) {
+ u9 g- O2 |* b1 s7 J' N) p		if (null == str || str.isEmpty() || !str.contains("1")) {
. H0 b. e5 Q: A0 i) C# C			return 0;
3 ~& G) S* _$ Q6 `* l		}) h2 ~+ Z% H, _+ ~2 S4 S
		int count = 0;6 i1 k8 H2 y* ~$ p, M5 e
		int curCount = 0;% P2 ]4 z3 g, T
		for (int i = 0; i < str.length(); i++) {
% I3 b8 k4 \" \0 N0 y9 T			if (str.charAt(i) == '1') {
) _) E- ~7 h6 r# M) T2 p& T( Q				if (curCount == 0) {
6 x1 k  G; [" o- D. N- `4 e					curCount = 1;
1 Q9 w- m$ f; W				} else {
9 Z6 }' R% J' d" a- b					curCount++;8 m% q1 J; O( N/ m
				}
6 J2 p9 T. F$ H				count = Math.max(curCount, count);8 x; p  @1 K9 c: n
			} else {5 y& }) `- g( `5 ^. w
				curCount = 0;. P  {6 H/ o) h, N; M, d
			}
8 G. x8 ]2 y6 M% R( Q9 R		}
/ R$ \9 R. e" q6 V4 E
( M6 k5 D8 \! H: _/ b8 K		return count;
) k* C' i6 B  u9 r+ l/ M4 E8 U# f	}

回复 支持 反对

使用道具 举报

1137

主题

171

精华

3478

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

Please check the following code.

public class Consecutive01 {* ]+ c, X0 x2 K% f
    - ?- T8 Z9 Q+ Q& @5 O6 l) p2 U
    static int[] a= {0,1,1,0,0,0,1,1,0,0,1,0};
8 s4 @( l* c; h5 l6 _+ {    
* L+ z/ q! B* L6 d$ V    public static void main(String[] args) {, t, T8 l" G% s5 B/ S. W
        int sum = 0;
7 C- J2 G4 c2 {9 v6 A8 a        int max  = 0 ;
, ~( y+ Z7 `  O, h+ l        for(int i = 0 ; i< a.length ; i++){
6 v  F  s2 G! ]2 P1 l           if(a[i] == 0){
" z- s  @: _5 @& e# R! Z               sum = 0;
/ d& i' j, K% c& N6 j7 n4 L9 w& A( w           } else {
. u: H9 H% K5 }8 t; |               sum++;
& @* E5 U" E8 w               if(sum > max)
) l$ t" I/ H& K8 Y4 z% Y. N                   max = sum;
+ I0 h% j9 z8 c           }% w/ d' H; ~& Q& Q+ @) Q
        }* [7 h# a- c, t! `+ H
        
0 l3 I4 K5 w/ y        System.out.println("Max consecutive 1s is: "+max);% C9 K5 D+ {# m2 j; i
    }
4 O- J& U& Q+ N, C* U. P3 O    
8 A+ h4 u; Y( Y! f9 k! n; u" W' U}

回复 支持 反对

使用道具 举报

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

本版积分规则

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