找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6946|回复: 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 编辑 / b7 e0 T) G* R( {1 F8 \2 _8 S
7 |- h2 {& ~. z9 J7 _
Find the maximum consecutive 1's in an array of 0's and 1's.0 k, p, y" @3 F  H" f: _8 n8 U
Example:
4 {2 U( ]# @; J! S: m8 Na) 00110001001110 - Output :3 [Max num of consecutive 1's is 3]
7 b  O2 P* Q# e( Ob) 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)3 b+ w4 W+ f$ s9 D! K7 E/ J: c' q6 ]
	public static int maxNumberOf1s(String str) {3 r9 g8 @' ]" r
		if (null == str || str.isEmpty() || !str.contains("1")) {
4 U  d4 u- k' E/ P. k; ^0 G: R+ l			return 0;% n: I7 g, L) l. K6 L1 q, Z; [
		}
- _; J) K8 p, p& _# V		int count = 0;
% K# }# m; ]$ h, G0 A		int curCount = 0;
6 y, @4 b/ {% k+ w9 t2 w  P		for (int i = 0; i < str.length(); i++) {
! `" A: q' f0 ^3 Z9 u4 Q$ O3 }			if (str.charAt(i) == '1') {
0 c2 C" u; p2 n1 f				if (curCount == 0) {+ D% u( s" \% C& f) H
					curCount = 1;4 t9 W) l- c0 Y% d0 Q( a
				} else {. E1 m6 b7 }% F3 |4 n  l
					curCount++;
! v6 ?+ z/ `( i				}
2 A$ k9 f/ O" [9 q( z				count = Math.max(curCount, count);
$ N: N4 R4 D/ Z  v- m			} else {) }- I6 E+ D) q- {+ |
				curCount = 0;
( J, f8 q- _0 g4 L' [1 ]! y( B8 k			}4 e( @5 c# {0 w& U, s
		}+ Z( I% j/ e5 }4 H* f

$ f8 C, Z+ I: Q6 s$ b		return count;' I  m( m: j/ f1 i$ V# b7 o& Z
	}

回复 支持 反对

使用道具 举报

1141

主题

171

精华

3486

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

Please check the following code.

public class Consecutive01 {
9 E: G. D, p  Q0 x! {) s. H    
% A  X5 O3 ?4 q3 S, c, G" M    static int[] a= {0,1,1,0,0,0,1,1,0,0,1,0};
2 f& K& t2 Z! u    
. P0 K. u0 n+ `9 Y; `    public static void main(String[] args) {  }" }6 {6 `- \- p
        int sum = 0;
2 G3 ^8 U$ c9 [        int max  = 0 ;
/ k* ^4 e# L/ ?. ~1 j' Q/ j6 T( c        for(int i = 0 ; i< a.length ; i++){
1 x# C+ ^0 t! M( {8 ]' O6 ]! {           if(a[i] == 0){5 l2 v% Q# T9 a6 `
               sum = 0;' D# ~6 N0 c2 z$ {, J5 ^
           } else {3 [  I, k3 O) c5 b& u" p
               sum++;  H# f, W. E. O
               if(sum > max)
8 s1 b( t% A4 s' u6 A                   max = sum;, b+ P8 O+ W% T1 M# I  m4 ^
           }
' e; D$ I' _$ Y  i: U! @        }
/ |' |! D& k3 R5 d2 P        3 w3 B* |# g6 I# L5 z
        System.out.println("Max consecutive 1s is: "+max);
- g5 M3 W- H9 ?7 k% A6 J    }
, y: h3 I  m2 R/ w0 j! i    $ s3 q) V% ?6 p/ f% D. P) o3 R' @
}

回复 支持 反对

使用道具 举报

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

本版积分规则

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