找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[Amazon] 亚麻QA工程师面经

[复制链接]

1159

主题

170

精华

3549

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

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

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

x
本帖最后由 Sophia 于 2-2-2017 10:15 PM 编辑 ' |9 g! x) ]5 i; y$ W9 ?; Q

! `8 V; M2 Y9 ~Find the maximum consecutive 1's in an array of 0's and 1's.
9 B) K% S/ I( jExample: 3 `) Z& ?1 Y, I. {3 x$ C
a) 00110001001110 - Output :3 [Max num of consecutive 1's is 3]
+ S. F! V& p8 O7 u& [+ rb) 1000010001  - Output :1 [Max num of consecutive 1's is 1]

1131

主题

152

精华

3334

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

// Time :O(n), Space :O(1)$ ]- t! G( d, @' M, x( Z* [
	public static int maxNumberOf1s(String str) {5 V  l2 E# z) c: M3 |3 p1 T
		if (null == str || str.isEmpty() || !str.contains("1")) {
( v( K, G) B: m2 T+ o7 C			return 0;
% ~. n# a( j2 W& ]) W. n( v		}
" m4 V/ k+ ?# k: ~4 v' X3 n		int count = 0;( s7 g* U0 g* ^7 l, T3 s  f
		int curCount = 0;
0 [8 M9 d1 n# x* L7 ]& x- a  r		for (int i = 0; i < str.length(); i++) {
; R2 J; Y1 ?+ Z" {			if (str.charAt(i) == '1') {! x7 s+ |# {4 ~6 U: |
				if (curCount == 0) {
3 t4 T4 t7 z3 e: ~2 w+ N					curCount = 1;. y9 [9 w0 ]+ c* e
				} else {
3 |) R) n6 \5 W7 x/ `5 p) b					curCount++;
2 E9 ~4 B( x) {- A/ q) E* ^				}6 S' C1 u4 Z5 D  H3 a# f: Y% E
				count = Math.max(curCount, count);
; ?% d& c# F! N: @; j9 q			} else {
2 \, V4 Y4 l, }1 R+ R% }; h				curCount = 0;
4 K/ p% G' I: |			}/ i9 b% k% {1 q0 e3 v+ o
		}
# \! B7 }, W. [0 V. a$ Y- X
$ _( z0 n( N/ L. j, d3 m		return count;5 j  y' r+ c7 n; L/ ~
	}

回复 支持 反对

使用道具 举报

1127

主题

171

精华

3458

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

Please check the following code.

public class Consecutive01 {! i- Q6 \! D, t$ d4 o
    
  {  y0 D7 t. ]/ R5 V6 D# c    static int[] a= {0,1,1,0,0,0,1,1,0,0,1,0};
" r8 t0 v& ?5 H* `; x' f4 Q    - {- z2 a' {* m% w1 n8 O
    public static void main(String[] args) {5 f: l  y" s% @! i! i
        int sum = 0;
7 d# G7 r. b' L% C9 ?+ l        int max  = 0 ;
3 `& _% B% w: E8 s& ~        for(int i = 0 ; i< a.length ; i++){
: N" a, ?8 c# t7 o" L6 F* F           if(a[i] == 0){" G& L, [/ p6 ~2 m6 U
               sum = 0;  j, [0 I6 R! V, k
           } else {
) E1 b4 x0 u. D4 H% C               sum++;6 B0 V- q; L& o- \2 Y# ?8 m( x7 K
               if(sum > max)
. L8 l' E0 ^6 N* p                   max = sum;: [4 h- K& b/ T+ W
           }4 D, b& ~& `5 j8 [  k
        }0 P7 \4 v+ {' K2 m. M4 H5 ?
        
% ?% f; e* R. a) `% y9 _" F        System.out.println("Max consecutive 1s is: "+max);
3 ?0 g* M% a% x3 P    }8 R/ A* r  D# w0 e; m6 k
    
, F- F4 r. j" [# Q/ ]  l}

回复 支持 反对

使用道具 举报

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

本版积分规则

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