一亩三分地

 找回密码 注册账号

扫描二维码登录本站


Salarytics=Salary Analytics
查询工资数据
系统自动计算每年收入

科技公司如何
用数据分析驱动产品开发
coupon code 250off 立减$250

深入浅出AB Test
从入门到精通
coupon code 250off 立减$250
游戏初创公司招聘工程师、UIUX Designer和游戏策划
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
把贵司信息放这里
12
返回列表 发新帖
楼主: jrou
收起左侧

lyft店面+店面总结

[复制链接] |试试Instant~ |美国面经, lyft, 码农类general, 面试经验
我的人缘0
amethlex 2018-10-23 15:13:37 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   94% (210)
 
 
5% (12)    👎
jrou 发表于 2018-7-21 01:33
[Java] 纯文本查看 复制代码

public class CommonElement implements Iterable {
[/quote]

不好意思,不是很熟悉Java,用python刷的题。请问下为啥要+2和+4?
[mw_shl_code=java,true]    public Iterator<Integer> iterator() {
        List<Integer> l1 = new ArrayList<>();
        List<Integer> l2 = new ArrayList<>();
        for (int i = 0; i <= 20; i+= 2) {
            l1.add(i);
        }
        for (int i = 0; i <= 20; i+= 4) {
            l2.add(i);
        }
         
        return new CommentElementIterator(l1.iterator(), l2.iterator());
    }

另外,它不是给了两个sorted iterator作为input吗,为何你写了iterator()?
在这里,为啥只会在tmp1 = tmp2的情况下才return,其他时候都设它们为null?
[Java] 纯文本查看 复制代码
 private Integer findNext() 
回复 微信

使用道具 举报

我的人缘0
amethlex 2018-10-23 15:17:23 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   94% (210)
 
 
5% (12)    👎
jrou 发表于 2018-7-21 01:33
[mw_shl_code=java,true]

public class CommonElement implements Iterable {

你觉得这么写可以吗?
https://stackoverflow.com/questi ... sts-using-iterators
package com.example;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

public class IteratorMerge {

    /**
     * @param args
     */
    public static void main(String[] args) {
        List<String> list1 = Arrays.asList(new String[]{"A", "B", "C", "D"});
        List<String> list2 = Arrays.asList(new String[]{"B", "D", "F", "G"});

        System.out.println(merge(list1, list2));
    }

    public static List<String> merge(List<String> L1,List<String> L2) {
        List<String> L3 = new ArrayList<String>();

        Iterator<String> it1 = L1.iterator();
        Iterator<String> it2 = L2.iterator();

        String s1 = it1.hasNext() ? it1.next() : null;
        String s2 = it2.hasNext() ? it2.next() : null;
        while (s1 != null && s2 != null) {
            if (s1.compareTo(s2) < 0) { // s1 comes before s2
                L3.add(s1);
                s1 = it1.hasNext() ? it1.next() : null;
            }
            else { // s1 and s2 are equal, or s2 comes before s1
                L3.add(s2);
                s2 = it2.hasNext() ? it2.next() : null;
            }
        }

        // There is still at least one element from one of the lists which has not been added
        if (s1 != null) {
            L3.add(s1);
            while (it1.hasNext()) {
                L3.add(it1.next());
            }
        }
        else if (s2 != null) {
            L3.add(s2);
            while (it2.hasNext()) {
                L3.add(it2.next());
            }
        }

        return L3;
    }
}

补充内容 (2018-10-23 15:21):
啊,好像不对,这就不是iterator了,但可以不可以吧merge分成hasNext 和 next?
hasNext就是s1或s2还有继续,next就是return较小的那个数?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://pay.1point3acres.com/tools/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版||一亩三分地

GMT+8, 2019-12-9 14:03

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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