2018-03-28 18:31:57 juanmengmu2595 阅读数 1824
  • SSH面试和笔试指导

    由于SSH部分内容庞杂,各大高校和培训机构在教学中存在着大量的问题。如重点不突出、理解错误等。为了便于大家掌握SSH的重点知识,在面试和笔试中轻松通过,肖老师整理了大量的重要试题,并进行了详细讲解!

    9273 人正在学习 去看看 肖海鹏

牛牛准备参加学校组织的春游, 出发前牛牛准备往背包里装入一些零食, 牛牛的背包容量为w。
牛牛家里一共有n袋零食, 第i袋零食体积为v[i]。
牛牛想知道在总体积不超过背包容量的情况下,他一共有多少种零食放法(总体积为0也算一种放法)。

输入描述:
输入包括两行
第一行为两个正整数n和w(1 <= n <= 30, 1 <= w <= 2 * 10^9),表示零食的数量和背包的容量。
第二行n个正整数v[i](0 <= v[i] <= 10^9),表示每袋零食的体积。


输出描述:
输出一个正整数, 表示牛牛一共有多少种零食放法。

输入例子1:
3 10
1 2 4

输出例子1:
8

例子说明1:
三种零食总体积小于10,于是每种零食有放入和不放入两种情况,一共有2*2*2 = 8种情况。
【题目分析】:这一类背包问题有两种方法,一种是当物品个数n较少,但是背包大小m比较大时采用指数级的枚举搜索,复杂度为O(2^n),另一种是当背包比较小的时候采用动态规划O(nm)。
这道题明显是属于第一种。但是2^30的复杂度是不可以接受的,因此我们可以采用中途相遇法。把我们能接受的前15个物品先进行第一次枚举搜索,然后再对剩下的物品进行第二次枚举搜索。把第二次枚举搜索出来的结果(至多2^15=32768个答案)存入数组并排序,枚举第一次搜出来的结果,计算出还剩下多少背包体积还能装,在第二次的结果中进行二分搜索,并把两次搜索的结果进行相乘(乘法原理)。再把所有的结果进行相加(加法原理),就是答案了。
我为了让小数据算的快一些,当n<20时直接枚举搜索出答案了。
当然也可以把物品分成n/2和n-n/2两部分。
总复杂度是O(2^(n/2)*n)。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
    for (LL n, w; cin >> n >> w; ) {
        vector<LL> v;
        for (int i = 0, x; i < n; cin >> x, v.push_back(x), ++i) {}
        LL n1 = n >> 1, n2 = n - n1;
        vector<LL> arr;
        for (int i = 0; i < (1 << n1); i++) {
            LL sum = 0;
            for (int bits = 0; bits < n1; bits++)
                sum += (i & (1 << bits)) ? v[bits] : 0;
            arr.push_back(sum);
        }
        sort(arr.begin(), arr.end());
        LL ans = 0;
        for (int i = 0; i < (1 << n2); i++) {
            LL sum = 0;
            for (int bits = 0; bits < n2; bits++)
                sum += (i & (1 << bits)) ? v[n1 + bits] : 0;
            ans += lower_bound(arr.begin(), arr.end(), w - sum + 1) - arr.begin();
        }
        cout << ans << endl;
    }
    return 0;
}

2017-09-13 00:05:56 zhangfuliang123 阅读数 2379
  • SSH面试和笔试指导

    由于SSH部分内容庞杂,各大高校和培训机构在教学中存在着大量的问题。如重点不突出、理解错误等。为了便于大家掌握SSH的重点知识,在面试和笔试中轻松通过,肖老师整理了大量的重要试题,并进行了详细讲解!

    9273 人正在学习 去看看 肖海鹏

1、矩形检测和字符识别
2、读出图片中仪表的读数

3、C/C++内存分配方式

a: 静态存储区:内存在编译的时候就已经分配好,直到程序结束都存在,例如全局变量,static变量

b:栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等,是一种向低地址扩展的数据结构,内存的分配是连续的。函数执行完成后自动释放。栈的分配效率很高(相比于堆分配),但是容量有限,VC6下只有1M。

c:堆区:由程序员分配释放,如果程序员没有释放掉,程序结束后,由OS回收,是一种向高地址扩展的数据结构,内存的分配的是不连续的。动态内存分配,C:malloc/free   C++:new/delete.堆的效率要比栈低得多,但是容量比较大,可以达到4G。

如果比较栈和堆的区别,可以从以下几个方式:申请释放方式不同、申请空间大小不同、申请效率的不同、以及碎片问题。

经典例子:

//main.cpp
int a = 0; 全局初始化区
char *p1; 全局未初始化区
main()
{
int b; 栈
char s[] = "abc"; 栈
char *p2; 栈
char *p3 = "123456"; 123456\0在常量区,p3在栈上。
static int c =0; 全局(静态)初始化区
p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
分配得来得10和20字节的区域就在堆区。
strcpy(p1, "123456"); 123456\0放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。
}

参考:http://blog.csdn.net/shanchangyi/article/details/51854795

4、面向过程编程和面向对象编程

a、面向过程是一过程为中心的的编程思想,分析出解决问题的需要的步骤,然后一步步实现,是流程化的。通常数据和对数据的操作是分离的。面向对象就是把问题抽象成具有行为(函数)和属性(数据)的一个个对象,然后分别设计这些对象,通常是数据和对数据的操作是绑定在一起的。

b、面向对象拥有三大特征:封装、继承、多态面向对象的代码更加支持重用,注重功能的复用。

封装:把客观事物封装成抽象的类,隐藏属性和方法的实现细节,仅对外公开接口。

继承:子类可以使用父类的所有功能,并且对这些功能进行扩展。继承的过程,就是从一般到特殊的过程。

多态:接口的多种不同的实现方式即为多态。同一操作作用于不同的对象,产生不同的执行结果。在运行时,通过指向基类的指针或引用来调用派生类中的虚函数来实现多态。

封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的类。它们的目的都是为了—代码重用。

而多态则是为了实现另一个目的—接口重用。


5、走格子,比如(0,0)到(5,7)
4、字符串数字转换为整数 "12345" to 12345
5、虚函数的作用以及实现机制

2018-03-28 10:58:15 weixin_38331816 阅读数 1142
  • SSH面试和笔试指导

    由于SSH部分内容庞杂,各大高校和培训机构在教学中存在着大量的问题。如重点不突出、理解错误等。为了便于大家掌握SSH的重点知识,在面试和笔试中轻松通过,肖老师整理了大量的重要试题,并进行了详细讲解!

    9273 人正在学习 去看看 肖海鹏

小明定了n个闹钟防止上课迟到,每个闹钟时间不同(5 0 代表5点0分闹钟),上课路程花费k分钟(k<100),第一堂课上课时间为T(6 58 代表点58分上课),请找出一个能让小明不迟到的最晚闹钟时间。

输入例子:

4 0

5 0

6 0 

59

6 59

输出例子:

6 0

解析:本题的难点主要在于你一开始并不知小明这个zz设置了几个闹钟,因此在代码书写时要考虑到不同闹钟数量带来的影响,数据读取后就只要进行一次筛选(选出不会迟到的闹钟时间),一次排序(排出最晚闹钟时间)。本文使用exec函数和str的format函数完成未知数量参数的获取,将时间转化为与0点0分的相差分钟数,然后进行筛选和排序,代码如下:

#python3 代码

number_alarm = int(input())

for i in range(number_alarm):
    exec('time{} = [int(i) for i in input().strip().split()]'.format(i))
time_load = int(input().strip())
class_time = [int(i) for i in input().strip().split()]
def time_trans(s):
    return s[0]*60 + s[1]
for i in range(number_alarm):
    exec ('class_time{} = time_trans(time{})'.format(i,i))
trans_class_time = time_trans(class_time)
final = []
for i in range(number_alarm):
    exec ('if trans_class_time - class_time{} >= time_load:final.append(class_time{})'.format(i,i))
best_time = max(final)

print (best_time//60,best_time%60)

#python2代码

number_alarm = int(raw_input())
for i in range(number_alarm):
    exec 'time{} = [int(i) for i in raw_input().strip().split()]'.format(i)
time_load = int(raw_input().strip())
class_time = [int(i) for i in raw_input().strip().split()]
def time_trans(s):
    return s[0]*60 + s[1]
for i in range(number_alarm):
    exec 'class_time{} = time_trans(time{})'.format(i,i)
trans_class_time = time_trans(class_time)
final = []
for i in range(number_alarm):
    exec 'if trans_class_time - class_time{} >= time_load:final.append(class_time{})'.format(i,i)
best_time = max(final)

print best_time//60,best_time%60

最后小小讲一点,python3中把exec和print都封装成了函数哇,要不是当初python2入的门,碰到这个就头疼了

PS:非计算机科班出身,没学过C和数据结构,本次笔试除了编程和少量算法题,完全不会,凉凉月色为你落地成盒。

2015-04-14 20:40:46 u010512642 阅读数 697
  • SSH面试和笔试指导

    由于SSH部分内容庞杂,各大高校和培训机构在教学中存在着大量的问题。如重点不突出、理解错误等。为了便于大家掌握SSH的重点知识,在面试和笔试中轻松通过,肖老师整理了大量的重要试题,并进行了详细讲解!

    9273 人正在学习 去看看 肖海鹏

今天下午,有幸参加了360产品星计划暨2015实习生招募的在线笔试,在此为大家做个分享:

笔试时间:90分钟

笔试形式:在线笔试,逐题作答,不可逆,不可手动调选题目

笔试内容:360产品的笔试和往年的差不多,题型主要类似于行测的样式,有语言类题目,数字类题目,图像推理类的逻辑判断题目以及最后的主观题,今天的主观题有5个,由于 前面30多个选择题耽误的时间比较长,最后还剩下20分钟左右做主观题,感觉主观题做的不好。印象比较深的主观题有这么几个:

1、三句话向你8岁大的侄子解释什么是产品经理?(或者解释360是一家什么样的公司)

2、”大而全“和”小而精“的理解问题

3、让你负责策划推广一个学霸们构建的学习交流平台,你认为最重要的三件事是什么?

4、说出了家里爸爸、妈妈、姐姐和自己的四中不同工作状况和爱好,据此推荐手机App

5、这个记不大清楚了,貌似是讲ATM机取款流程的,自己时间紧,做的不好

总的来说,360的题给人家的题给人一种宽松的的感觉,但限于自己水平,前面答的太慢,从而导致后面的主观题答的很不好,自己还需要努力!在此推荐大家多读读《人人都是产品经理》《结网》《交互设计之路》《简约至上》这几本书。

2017-04-13 11:07:13 qq_22069577 阅读数 434
  • SSH面试和笔试指导

    由于SSH部分内容庞杂,各大高校和培训机构在教学中存在着大量的问题。如重点不突出、理解错误等。为了便于大家掌握SSH的重点知识,在面试和笔试中轻松通过,肖老师整理了大量的重要试题,并进行了详细讲解!

    9273 人正在学习 去看看 肖海鹏

应聘职位:基础研究岗实习生

时间:腾讯暑期实习生在线笔试模拟考:3月25日17:00;暑期实习生在线笔试正式考:4月2日19:00。

题型:25个客观选择题和3个主观简答题,时间分别为60分钟,共计120分钟。

选择题

选择题主要涉及了概率论、统计学、微积分、矩阵论、最优化、逻辑推理、数据库、排序算法复杂度等知识。

1、高等数学:求定积分结果,求函数和x州围成的面积,求极大值;

2、最优化:最速下降法;

3、矩阵论:线性方程组的解的数目,矩阵行列式的值,特征值,特征向量相关性;

4、概率论:u检验,t检验,3sigma原理,抽样误差,标准差,显著度,排列组合,数学期望,贝叶斯公式,切比雪夫不等式;

5、数据库:SQL查找语句,数据库的基本概念;

6、数据结构算法:递归算法,常用排序算法稳定性、比较次数、时间复杂度,程序的输出结果,补充部分代码,决策树,最小生成树,有向图;

7、逻辑推理

a、已知K是第四名,A的年龄不是最大但比D老,D不是第二名,年龄第2小的是第二名,第三名的年龄大于第一名,B比第三名年轻,求A、B、D和K的排名顺序。(D>B>A>K)

b、一只青蛙不小心掉入深21米的井里,为了生存,它每个白天都努力地向上爬10米,但到了晚上因为体力等问题会再掉下去7米。问该青蛙几天可以从井里爬出(5)

c、一个人口调查员到某妇女家,询问他三个孩子年龄.妇女说,三个孩子年龄相乘是36,年龄之和是门牌号。调查员说我还是不能知道他们的年龄,妇女说,最小的两个是双胞胎。问门牌号是多少?

首先,可以将36因式分解及门牌号可能性求出来:

36=1*2*18     21         36=1*3*12   16      36=1*4*9      14     36=1*6*6     13

36=2*2*9      13          36=2*3*6     11      36=3*3*4     10

因为调查员是知道门牌号的,但仍不能确定年龄,那门牌号肯定是13,对应两种年龄情况。再根据最小两个是双胞胎,所以年龄应该是2 2 9。

简答题

1、进行特征选择时,即分析哪些协变量对目标变量有较大影响时,有哪些常用的方法?你本人更看好其中哪些?为什么?

2、网络上流传一个故事,关于数据挖掘的神奇性:某商场向一位经常在该商场消费的未婚少女邮寄了一些用于保胎的商品的目录和折扣券,惹得其父亲大为发火,但事后证实该少女确实怀孕了。请问你的没有理工科背景的朋友解释下,这是如何做到的?

3、QQ空间相册替换墙换一换功能。把聚类好的人脸进行圈人标注,系统根据用户历史标注记录,分析每张照片最可能身份,用户进行确认和否认。每次只从聚类人脸中抽取5张进行展示。假设利用信息是每个人脸的相似度矩阵G,而且第k+1次抽样并不知道第k次抽出的样本,可用人脸数量N始终大于50张。

(1)如何设计抽样算法,抽样碰撞率尽可能低;

(2)如果抽样完成后,抽出5张人脸从中删除,如何设计抽样算法,使得相邻两次间抽样碰撞率尽可能低?

4、老板要跟某工厂合作,到工厂视察,询问了保安工资是否按时发,保洁工资是多少,工厂新旧程度,是否自建,地是否是自己的,工人忙不忙,情绪是否饱满。以此判断该工厂实力是否雄厚,请从技术角度解释这样做是否合理?

5、听说国外有一款软件,可以预测某地何时发生犯罪,请猜测用的是什么原理?

6、已知用友越大朋友圈的人,越爱转发和评论,作为运营商,我们该如何鼓励更多的用户转发和评论?是否需要加入其它辅助数据?

7、有人说AlphaGo能击败人类高手,但是所谓的人工智能只是死记硬背,不可能比人类灵活,对此你赞同不赞同?为什么?

8、如果由你来设计一个机器人,让他模拟人类教师那样,对学生进行功课辅导,你觉得至少应该赋予机器人哪些数学模型?

9、神经网络有哪些优缺点?

10、原假设、备择假设;第一类错误和第二类错误。

个人觉得选择题都是基本的数学问题,真心不难,但是涉及范围广,如果没有复习,真的只能蒙了;简答题的主要考点在:模式识别中特征的筛选、神经网络、常用的及其学习算法、人工智能、机器学习、大数据、推荐系统、数据挖掘方面的知识,这些题目和生活中的现象或者热点问题密切结合,因此对于周围牵扯到这些知识点的现象应该保持敏感,多思考,毕竟答案是不唯一的。

面试常问的问题

阅读数 1944

没有更多推荐了,返回首页