百度作业帮一面总结

1、让写了一个算法:具体题目是,给你两个有序链表,怎样找到相同的元素,并保存后输出,下面是我的代码:(有链表的构成和实现函数)----哈哈,算法难不倒我滴,人称“小数据结构”

package linkedlist;

import java.util.ArrayList;
import java.util.LinkedList;

/**
 * Created by Administrator on 2015/11/6 0006.
 */
public class Pandeng {
    public static void main(String[] args) {
        Node h1=new Node(0);
        Node head1=h1;
        Node h2=new Node(1);
        Node head2=h2;
        Node t1;
        Node t2;
        for(int i=1;i<5;i++){
            t1=new Node(i);
            h1.next=t1;
            h1=t1;
        }
        h1.next=null;
        for(int i=2;i<6;i++){
            t2=new Node(i);
            h2.next=t2;
            h2=t2;
        }
        h2.next=null;

        ArrayList<Integer> list=new ArrayList<Integer>();
        list=doWork(head1,head2);
        for(int i:list)
            System.out.print(i+" ");
    }

    private static ArrayList<Integer> doWork(Node h1, Node h2) {
        if(h1==null||h2==null)
            return null;
        ArrayList<Integer> list=new ArrayList<Integer>();

        while(h1!=null&&h2!=null){
            if(h1.value==h2.value){
                list.add(h1.value);
                h1=h1.next;
                h2=h2.next;
            }
            else if(h1.value>h2.value)
                h2=h2.next;
            else
                h1=h1.next;
        }
        return list;
    }

    static class Node{
        Node next;
        int value;

        public Node(int value) {
            this.value = value;
            next=null;
        }
    }
}
最后一面面试官问我对此进行测试的话有哪些测试用例:我说出来4个:

(1)链表为空的情况

(2)两个链表没有相同元素的情况

(3)其中一个链表的最大值是这个链表的最小值

(4)普通情况:就是有几个相同的值

时候才被自己的单细胞给蠢哭了,下面是我又响起的几个测试用例:

(5)都相等(这个怎么就没想到呢,都想到都不相等的了都相等不就是嘴上的事吗,哎。。。不过总结经验是好的)

(6)连表中有几个连续相等的数据---该怎么办,这种情况就是在比较一下下一个元素不就行了,简直被自己给蠢哭了。。。不开森

不过言归正传,还是要继续学习的,对于(6)这种情况,处理函数应该这么写滴:想了想其实没必要,因为题目就是找出相同元素即可。

不过如果既然找出相同元素,又要找出相同元素的个数那么用hashmap进行存储。代码下篇附上

2、对做过的项目的一些介绍,被一个问题问住了,因为没接触过:就是==和===有什么区别,,,,晕了,貌似见过===的那是自我感觉肯定是写错了,我就呵呵了。

具体详解点击打开链接

3、还有就是对数据库的使用:主要是索引,食物的原子性(要么都做要么都不做),患有表之间的关联(可以使用外键,创建视图),患友就是限时抢购模块,怎么能保证公平的情况下有能抢到东西,(我是用平均分法处理的,就是有m个用户再抢,n件商品,m肯定>n)此时就要均分,就是将人分成n组,每组m/n人1件商品,保证了公平性,但是你怎么知道此时的人数呢:我用了一个方法:那就是在数据库中新建一个表,记录用户,商品,商品件数等几个字段,然后用户id是自动递增,用sql语句的出最后一行的id传进来作为人数(貌似直接计算行数就行即:count(*)就ok,又被自己蠢哭了。。。)。患友就是数据库的藏数据问题,这个下下篇介绍。。吃饭去了。。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值