各大软件公司经典面试题——微软(2011)第1,2题

软件行业面试题库---综合素质面试题 这是一个综合的面试题库,包括多种类型的综合测试,这是一个综合的面试题库,包括多种类型的综合测试,这是一个综合的面试题库,包括多种类型的综合测试,这是一个综合的面试题库,包括多种类型的综合测试 立即下载
  1. 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。

  • 方法一:暴力求解,遍历数组记录两两之差,求得最小值。算法时间复杂度为O(n2)。
  • 方法二:设原始数组为A[n](a1,a2,a3......),构造数组B[n](a1,a2,a3,a4......);b1=a1-a2,b2=a2-a3.....bn=an-1 - an;则在原数组中,任意两个整数之差ai - aj (1<=i,j<=n)可以表示为第 i 到第 j-1 个元素的连续求和。假设原始数组A[n],1)先找出最大值max,最小值min,O(n)时间。2)然后设B[max-min+1],,初始化每个元素为0;利用桶排序的思想,将每个元素A[i]放进B[A[i]-min],如果在放之前B[j]不等于零,则说明有相等的数,因此两两之差绝对值最小为0。否则继续,直到全部放好。3)这样A中的每个元素都对应B中的每个元素,该元素值非零(值为零的元素说明A中没有)。这个过程复杂度为O(n)
    这样就将问题转化为,求B中值为0的元素的最小串的问题~~【此方法思路比较新颖,想法和出发点值得参考】
  • 方法三:对数组进行排序,然后计算相邻差值,比较得到最小的即为所求。(使用快速排序)
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    
    int partition(int *a,int low,int high){
        int pos = a[low];
        while(low < high){
            while(low<high&&pos<=a[low]){
                high--;
                a[low] = a[high];
            }
            while(low<high&&pos>=a[low]){
                low++;
                a[high] = a[low];
            }
        }
        a[low] = pos;
        return low;
    }
    void QuickSort(int *a,int low,int high){
        if(low<high){
            int pos = partition(a,low,high);
            QuickSort(a,low,pos-1);
            QuickSort(a,pos+1,high);
        }
    }
    int main()
    {
        int array[] = {0,-9,3,7,-5,4};
        QuickSort(array,0,5);
        for(int i=0;i<6;i++)
            printf("%d\n",array[i]);
        int j = 1;
        int min = abs(array[0]- array[1]);
        for(;j<5;j++){
            if(min > abs(array[j]-array[j+1]))
                min = abs(array[j]-array[j+1]);
        }
        printf("min = %d\n",min);
        return 0;
    }
    

     

写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)


基础知识补充,对于一个个给定的字符x,比如x = ‘6’,如何求x所对应的数字6呢?我们知道计算机存储实际上存储的是其ASCII码,对于字符x='6'实际上存储的是ASCII码54,字符'0‘是48,’1’是49,这样的话,对于任意一个字符我们都可以通过x-'0'的方式来求其对应的数字值。递归实现:

long atoi(char *str,int length){
    if(length>1){
        return str[0]=='-'?atoi(str,length-1)*10-(str[length-1]-'0');atoi(str,length-1)*10+(str[length-1]-'0');
    }else
        return (str[0]=='-'||str[0]=='+')?0:str[0]-'0';
}

非递归实现:

long atoi(char *str,int length){
	int i=0,sign=1,result=0;
	if(str==NULL&&length<1)
		return -1;
	if(str[0]=='-')
		sign=-1,i++;
	else if(str[0]=='+')
		i++;
	//注意,这里一定要加上“i<length”这个条件。若是不加这个条件,则值isdigit(str[length])有可能返回true,
	//即越界元素str[length]有是数字字符的可能性.这样以来程序就错了!
	while(i<length&&'0'<=str[i]<='9')
		result=result*10+str[i]-'0',i++;
	if(i==length)
		return result*sign;
	return -1;
}

 

软件公司面试题大全 最新最全的各大软件公司面试题汇总,让你做好充分的准备,包过哦 立即下载

相关推荐

全国各个软件公司面试题(面试必备哦)

包含了各种软件公司的面试题(面试前必备)!欢迎下载

微软面试58道逻辑面试题

一、微软面试58逻辑推理题 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段 ,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你 的工人付费? 2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。 3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒, 小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每 次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会 熄灭。问:小明

dan_dan的博客 6万+

全国各个软件公司面试题

北京-诚创易通笔试题. 北京-恒华伟业科技面试题 北京-光声--面试和机试-北京 广州-领先面试题 杭州-SQL浙江浙大网新中研软件有限公司 南京-北极星

软件开发常见面试题

软件开发常见面试题一、通俗讲解一下IP地址和DNS二、现在很流行的JWT到底是什么?三、记住七个字搞定索引失效问题四、关于数据库优化的慢查询日志五、三次握手是怎样交互的?六、TCP和UDP的区别?七、跨域问题是怎样产生的?八、session到底是啥?九、http与https?十、get和post的区别?十一、IP地址是什么?十二、什么是VPN?十三、类和对象之间的关系?十四、DNS是什么?十五、cookie能当缓存使用吗?十六、通俗讲解一下什么是DNS?十七、通俗讲解一下IP地址和Mac地址的概念十八、通俗

faramita_of_mine的博客 1万+

Adams中AKISPL和DX函数的妙用:打造精准的非线性衬套模型

本文深入探讨了在Adams动力学软件中,如何巧妙运用AKISPL插值函数与DX等位移测量函数,构建高精度的非线性衬套模型。文章通过实战案例,详细解析了从单轴非线性刚度到完整六自由度耦合模型的实现步骤与调试技巧,帮助工程师将复杂的实验或有限元数据转化为可靠的多体动力学仿真模型,有效提升系统仿真置信度。

sky77的博客 320

RealSense D435i深度相机实战:从像素坐标到三维空间的精准映射(Python实现)

本文详细介绍了使用RealSense D435i深度相机实现从二维像素坐标到三维空间坐标精准映射的两种Python实战方法:深度图反投影法与点云直接查找法。文章涵盖环境搭建、相机对齐、代码实现、性能对比及与YOLO等检测模型结合的进阶应用,并提供了关键的避坑指南和参数调优建议,帮助开发者在机器人、三维重建等项目中高效应用。

weixin_29291573的博客 382

2024年最全软件测试面试常见问题【含答案】_软件测试面试常见问题及答案,优秀软件测试程序员必知必会的网络基础

PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。

2401_84563179的博客 1395

大象机器人myAGV移动机器人+mechArm六轴机械臂,开源复合机器人开发与实践!

我们这章节的内容是将协作性机械臂打破距离上的限制,跟移动机器人(myAGV)相连接,实现一个案例。

m0_71627844的博客 1488

微软面试智力题

第一组 1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻? 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?...

weixin_30273501的博客 306

win11本地部署 DeepSeek-R1 大模型!免费开源,媲美OpenAI-o1能力,断网也能用

是否安装成功,然后直接运行部署deepseek-r1的命令。,出现下面界面即为安装成功。在cmd窗口中先输入。

记录学习编程的日常 2992

Scipy优化踩坑实录:trust-constr和SLSQP约束定义到底差在哪?

本文深入解析了Scipy优化模块中trust-constr和SLSQP两种方法在约束定义上的差异。通过对比面向对象的trust-constr和字典式定义的SLSQP,揭示了它们各自的优势与适用场景,帮助开发者在有约束优化问题中选择合适的算法,提升计算效率与准确性。

weixin_42573113的博客 271

微软的面试题及答案

第一组       1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?   2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?   3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出

蜻蜓轩 1209

2026开源API网关横评:微服务与AI流量治理如何选型

API网关作为微服务架构的流量入口,承担着路由转发、安全管控、限流熔断等核心职责,是分布式系统治理的基础设施。随着大模型应用的普及,AI流量对网关提出了新的要求,如流式响应支持、Token级限流、多模型路由和成本分账等能力。传统网关通过插件拼凑AI功能,而AI原生网关则将这些能力内建。面对众多开源方案,如何根据业务场景做出合理选型?本文对Kong、APISIX、Higress、Envoy Gateway、MAI Gateway等主流开源API网关进行横向评测,从性能、动态性、K8s集成度、AI流量治理等维度

weixin_34242819的博客 482

各大软件公司经典算法面试题

2011-04-03 微软 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)给出一个函数来输出一个字符

afa的专栏 1739

从零开始 使用OMNET++结合VEINS,INET和SUMO的联合仿真

搭建仿真的环境,导入VEINS和INET开源库,使用INET库中提供的网络协议和功能模型来模拟通信协议和网络功能,使用SUMO创建道路网络和车辆轨迹,并导出到OMNeT++中 在OMNeT++中使用VEINS通过socket和SUMO连接,借助VEINS实现的TRACI接口来设置车辆相关的行为和场景,最后在OMNET++中结合VEINS,SUMO和INET运行联合仿真实验,并分析车辆在遇到紧急情况下的通信状况和具体行为

mjmmm的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

微软等公司数据结构+算法面试100题、分析、考点、解答(第1~100题)

1.把二元查找树转变成排序的双向链表  题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。    10  / \  6 14  / \ / \ 4 8 12 16  转换成双向链表 4=6=8=10=12=14=16。    首先我们定义的二元查找树节点的数据结构如下:  struct BSTreeNode

李棚的优快云专栏 5565

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java算法——快速排序

白话经典算法系列之六 快速排序 快速搞定 标签: 微软快速排序-快速搞定算法腾讯面试 2011-08-13 17:19 356398人阅读 评论(274) 收藏 举报  分类: 白话经典算法系列(15)  版权声明:本文为博主原创文章,未经博主允许不得转载。  快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采

l_z_w99的博客 281

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

微软101道经典面试题(今后会陆续给出程序)

Algorithms and Programming 1. Given a rectangular (cuboidal for the puritans) cake with a rectangular piece removed (any size or orientation), how would you cut the remainder of the cake into two equa

leonard520的专栏 4016

面试之谈

面试官常问的问题: 1)软件业一般常设的与软件开发技术有关的岗位类,请至少说出其中的5种 需求分析工程师、系统分析工程师、系统设计师、开发工程师、测试工程师、实施工程师、技术支持工程师、销售人员、项目经理。。。。。 2)作为软件开发工程师来讲,需要具备哪些文化和技能素质,请至少说出其中的5条 逻辑思维、软件知识、编程规范、质量标准、善于学习、程序语言、开发工具、操作系统、数据库技术、开发文

zhuzhenyang110的专栏 1019

软件测试常见的面试题(46道)

系统瓶颈就是软件在一定的并发量、访问量下无法达到用户的需求。比如说用户需要在10s内完成一个访问,但是每一次都要12s才能完成,这个就是性能瓶颈,有可能是程序本身的问题,也有可能和操作系统、软件相关。

2401_86943461的博客 1817

算法面试:精选微软经典的算法面试100题(第1-20题)

算法面试:精选微软经典的算法面试100题[1-10]引言:给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数要求下排每个数都是先前上排那十个数在下排出现的次数。上排的十个数如下:【0,1,2,3,4,5,6,7,8,9】举一个例子,数值:0,1,2,3,4,5,6,7,8,9分配:6,2,1,0,0,0,1,0,0,00在下排出现了6次,1在下排出现了2次,2在下排出现了1次,3在下排出现了0次....以此类推..1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换

结构之法 算法之道 4万+

微软公司等数据结构+算法面试100题(第1-100题)全部出炉

微软等公司数据结构+算法面试100题(第1-100题)首次完整亮相                        作者:July、2010年12月6日。更新:现今,这100题的答案已经全部整理出来了,微软面试100题2010年版全部答案集锦:http://blog.youkuaiyun.com/v_july_v/article/details/6870251。关于此100道面试题的所有一切详情,包括答案,资源

结构之法 算法之道 24万+

微软十五道面试题 答案

1、有一个整数数组,请求出两两之差绝对值最小的值, 记住,只要得出最小值即可,不需要求出是哪两个数。 2、写一个函数,检查字符是否是整数,如果是,返回其整数值。 (或者:怎样只用 4 行代码编写出一个从字符串到长整形的函数?)  3、给出一个函数来输出一个字符串的所有排列。 4、( a)请编写实现 malloc()内存分配函数功能一样的代码。 (b) 给出一个函数来复制两个字符串 A

小人物的草稿本 2669

微软公司最经典的面试题(含答案)

微软公司最经典的面试题(含答案)12个小球,其中11个一模一样,而有1个外表一样,但质量不一样(不知道是比其它的球重还是轻)。现在有一个没有刻度的天平,请最多用这个天平称三次,把这个不同的球找出来。   答案1:12个球,两边各放六个,必然有一边重一边轻(第一次称)。把较重的一边平均分到两个称盘进行称量,会有两种结果:质量相同,说明要找的球在另六个中,且较轻;如果质量不同,说明哪个球在现在所称量的

1852
下一篇: 19.2.25面试
Otis_L
博客等级 码龄12年 191粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值