找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 9932|回复: 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 编辑
) T8 a" _- ~% W4 x& X/ n5 k
7 O& d" _- C. ]" [  d! W7 {) A/ eFind the maximum consecutive 1's in an array of 0's and 1's.
" v3 N6 C" ]( `0 xExample:
" \# t' P! k6 i0 d: Ha) 00110001001110 - Output :3 [Max num of consecutive 1's is 3]7 C( K3 ~" [" D$ ^( @- a
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)
, G2 T0 l. X+ _8 y4 m( p	public static int maxNumberOf1s(String str) {- H  B4 T2 ]" ]/ g( S& t; {" A+ g# F
		if (null == str || str.isEmpty() || !str.contains("1")) {4 C6 V& r. H* z8 j. K
			return 0;
9 Z- I# M) z$ y  ~$ A* m		}
+ T) X; z/ Y+ G$ I- j3 i4 A% I& s		int count = 0;
. G3 F& O. ~4 `/ g% |, x7 E6 N1 B		int curCount = 0;9 b1 ?8 B2 m6 Y6 P
		for (int i = 0; i < str.length(); i++) {
% ~- w- ~  V% S3 a2 Y  _			if (str.charAt(i) == '1') {3 _& Z! U0 A+ P  ?* X6 C6 ~5 [3 L
				if (curCount == 0) {
) l9 S$ i. p, l- ?7 [					curCount = 1;7 d% H) q- Y) y! H4 H0 N
				} else {
5 b; T% s* d; a/ t					curCount++;6 B  n) a6 o5 @9 F
				}
% H# ^! V& X6 i; [1 ~				count = Math.max(curCount, count);
5 ]/ V# F" M/ `- T/ E1 g' e			} else {* j! g" r# E# d1 }% j0 m
				curCount = 0;
" R9 R8 X. u9 d9 d+ g8 g			}
' _9 |, j. J( T& H		}, r, A" `8 t1 X
6 X0 z/ ]. x% ]! g  P: T2 N0 j; H
		return count;
; l; ~. f& i4 ~/ h* _: ]: k' ^	}

1141

主题

171

精华

3486

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

Please check the following code.

public class Consecutive01 {
) y5 F* m' `: K8 n& B    
9 Y! A  p* Z1 y    static int[] a= {0,1,1,0,0,0,1,1,0,0,1,0};
: x0 q2 D2 O9 n2 G1 R  P3 G    - h" f8 ?  K; r( ]- _% ?" j  r
    public static void main(String[] args) {
9 v# E# X: v) I" Y  Q5 A        int sum = 0;& u  K8 ~9 {9 C/ |" J
        int max  = 0 ;! `0 h2 D2 o/ [  h4 Y! ~
        for(int i = 0 ; i< a.length ; i++){
- p  s. M& d; q7 F8 ^! c           if(a[i] == 0){
5 `: b/ w% {0 W, y               sum = 0;
" i% v/ r; j: z  D. H           } else {
4 ]- C6 d. a4 R! ]  G               sum++;) R& ~/ t& S' q0 Q$ `- }( C
               if(sum > max)
7 t( @0 r& G! p8 e+ g# u) t                   max = sum;
3 |4 ]2 n8 `4 R# d, u: ~, v1 n           }; O7 r3 @! U. x! l: M
        }* M: h( Z( c$ \! a
        
! R. O* v# \: O. j        System.out.println("Max consecutive 1s is: "+max);  J3 f5 B- y2 F- K; ]% }
    }
& u3 ?+ o+ g4 _; h. O    3 X- ?; t% d/ e
}

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

本版积分规则

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