测测你的编程思想!--大牛必看!

第一题:

数据库中有哪个人在哪一个天值班的数据。值班地点中同一天会有两个人去值班。


客户要求导出excel数据如下:

显示出搭档的值班人员在哪些天需要值班。



我的思想是:

在往数据库插入值班人员在哪些地方值班的时候做如下处理:

得到需要值班的人员名单list。

日期循环

{

     i=0;

    插入这一天list[i]值班的数据

    i=getNamlistIndex(i,list.size());

   插入这一天list[i]值班的数据

}

public int getNamlistIndex(int i,int nameListSize)
{
   if(i+1>=nameListSize)
    {
      i=0;
    }
    else
    {
    i=i+1;     
    }
   return i;
}

然后,关于导出excel部分的思想是:

在excel左半边列出需要值班的人员名单,这个名单的排序和上面    “得到需要值班的人员名单list” 中list的排序一致。

在excel的右半边列出需要值班的日期,日期按照从小到大排序。

这样不用做数据匹配,就可以满足用户要求了。

但是,前提是必须保证人员名单为偶数,正好客户需要对值班人员名单必须为偶数做验证。


第二题:

如下图:是需要安排值班的值班的人员名单。每天办公室安排2个人去值班,可以确保值班人员总数是偶数,要求如下:


同一天值班的人员不能是同一个律所的,为了方便监督。

相隔日期是同一个律所的人在值班,方便通知。

结果如下图:

律所a 人员1     律所b人员1

律所a 人员2     律所b人员2

律所a 人员3     律所b人员3


我的思想是:先按照律所进行排序,然后快速排序的算法



按照数据库对律所进行排序之后,再按照1,8,2,7这样取可以保证题目要求。(因为保证了总人数偶数,不用担心基数不匹配问题)

以上只是我个人认为比较简便的思想,有疑问的可以加qq细聊!

2413172711@qq.com


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值