Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

2016滴滴出行研发工程师笔试题(亮灯问题)

2016滴滴出行研发工程师笔试题(亮灯问题)

最近又想搞即时通讯又想搞网络框架,然而都没弄出来,不过每周面试题还是得照常继续的。一、题目2015盏灯,一开始全部熄灭,序号分别是1-2015,先把1的倍数序号的灯的开关全部按一次,然后把2的倍数的灯的开关全部按一次,然后把3的倍数的开关按一次,以此类推,最后把2015的倍数灯的开关按一次。问最后亮着的灯有多少盏?A. 43 B. 44 C. 45 D. 46二、解题咋一看,这不是数学问题吗?干脆用数学解了。先来分析一下,因为一开始的时候 2015 盏灯都...
按之字形顺序打印二叉树(二叉树的层次遍历)

按之字形顺序打印二叉树(二叉树的层次遍历)

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。和把二叉树打印成多行(问题:链接)类似,都是对二叉树的层次遍历,只不过这个题要求正序逆序交叉输出# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# sel...
平衡二叉树(二叉树深度+DFS)

平衡二叉树(二叉树深度+DFS)

题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。平衡二叉树:又称AVL树,具有如下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树(即每一个结点的左右子树)。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclas...
Linux下进程编程入门笔记

Linux下进程编程入门笔记

fork()系统调用fork的作用是根据一个现有的进程复制出一个新 进程,原来的进程称为父进程(Parent Process) ,新进程称为子进程(Child Process)。系统中 同时运行着很多进程,这些进程都是从最初只有一个进程开始一个一个复制出来的。在Shell下输入 命令可以运行一个程序,是因为Shell进程在读取用户输入的命令之后会调用fork复制出一个新 的Shell进程,然后新的Shell进程调用exec执行新的程序。例如:在Shell提...
Linux IO多路复用 epoll 心得

Linux IO多路复用 epoll 心得

一、epoll简介epoll是Linux内核为处理大批量文件描述符而作了改进的poll, 是Linux下多路复用IO接口select/poll的增强版本, 它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候, 它无须遍历整个被侦听的描述符集, 只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。相关文件到Linux公社资源站下载:----------------------------...
C++函数配接器

C++函数配接器

一、概述配接器(adaptor)在STL组件的灵活运用功能上,扮演着轴承、转换器的角色,将一种容器或迭代器装换或封装成另一种容器或迭代器。adaptor这个概念,实际上是一种设计模式,其定义如下:将一个class的接口转换为另一个class的接口,使原本因接口不兼容而不能合作的classes,可以一起运作。配接器按功能可以分为如下3类:可以改变函数或仿函数接口的适配器,称为仿函数适配器; 针对容器的适配器,称为容器适配器; 针对迭代器的适配器,称为迭代...
C++标准库中各种排序归纳

C++标准库中各种排序归纳

一、简介所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。我们在编程过程中会经常接触到排序,比如游戏中的排行榜等。C++标准库中提供了各种不同的排序算法,这篇博客将逐一介绍。还有在什么场景下,具体该使用哪一个排序算法效率更高。二、算法1. sort原型:template<typename iterator>void sort(iterator begin, iterator end)template <...
Python标准类型的分类

Python标准类型的分类

Python有3种不同的模型可以帮助对基本类型进行分类,这些类型更好的理解类型之间的相互关系以及他们的工作原理。 1 存储模型 能保存单个字面对象的类型,称为原子或标量存储; 能保存多个对象的类型,称为容器。存储类型分类Python类型标量/原子类型数值(所有的数值类型),字符串(全部都是文字)容器类型列表,元组,字典 2 更新模型 以对象创建成功后,它的值是否可以进行更新为依据进行的分类,分为可变类型和不可变类型。更新模型分类Python类型...
数组名和指针的区别(数组名不是指针,是数组首地址)

数组名和指针的区别(数组名不是指针,是数组首地址)

听了一堂C语言的课,那老师说:“数组名就是一个指向数组首地址的常量指针”。我上百度查了一些,有好多教程、书籍等,都持相同的观点。但我一直感觉——数组名不等于指针。实践是检验真理的唯一标准,于此,有了以下内容。首先,声明一个数组和一个常量指针并指向那个数组。1 int arr[3] = { 1, 2, 3 };//声明数组2 const int *p_arr = arr;//声明常量指针设问:一个整型指针的长度...
JavaScript面向对象设计

JavaScript面向对象设计

JavaScript中Java语言不一样,它没有类这个说法,更没有子类父类一说,所以它所谓的继承机制,也是和其他语言完全不同的。创建对象三种方式1.最简单的方式,创建一个object对象,然后为它添加属性和方法var person=new object();person.name="zhangsan";person.age=20;person.sayName=function(){alert(this.name);};2.工厂方式本质上就是对上述最简单的方...
GC.Collect如何影响垃圾回收

GC.Collect如何影响垃圾回收

根据垃圾回收的算法,对象在内存中是按代的方式存放的,通常情况下,当第0代沾满分配的空间的时候(比如是256k),GC就会启动去回收第0代对象,幸存的第0代对象会被放入第1代中去,第1代的对象要等到放满了才会收集,因此,越是年轻的代越是被频繁的收集,由于通常情况下GC只收集第0代对象,既保证了可回收较多的内存,又忽略了老一代的对象,从而加快了垃圾回收的速度,提升了性能。因此当调用gc.collect的时候,相当于强制的对所有代,不管年轻还是老的都执行一次回收...
Java Garbage Collection基础之Java 垃圾回收机制技术详解

Java Garbage Collection基础之Java 垃圾回收机制技术详解

最近还是在找工作,在面试某移动互联网公司之前认为自己对Java的GC机制已经相当了解,其他面试官问的时候也不存在问题,直到那天该公司一个做搜索的面试官问了我GC的问题,具体就是:老年代使用的是哪中垃圾回收算法,并详细解释第一步做什么,第二部做什么?这时候才发现具体一步一步怎么来的,确实不知道。那结果就可想而知,面试官就对我不感兴趣了。那一瞬间,感觉自己不应该过分轻信别人的博客,要相信官方的文档,因为有些写博客的技术人员也许自身对某些技术都不是很了解,只是自...
JVM内存管理及垃圾回收详解

JVM内存管理及垃圾回收详解

很多Java面试的时候,都会问到有关Java垃圾回收的问题,提到垃圾回收肯定要涉及到JVM内存管理机制,Java语言的执行效率一直被C、C++程序员所嘲笑,其实,事实就是这样,Java在执行效率方面确实很低,一方面,Java语言采用面向对象思想,这也决定了其必然是开发效率高,执行效率低。另一方面,Java语言对程序员做了一个美好的承诺:程序员无需去管理内存,因为JVM有垃圾回收(GC),会去自动进行垃圾回收。其实不然:1、垃圾回收并不会按照程序员的要求,随...
Java和.NET中的垃圾回收机制比较

Java和.NET中的垃圾回收机制比较

Java和.NET中的垃圾回收机制相同点:都采用了分代的机制。都支持并发GC。都没有采用引用计数方式,而是采用了追踪技术。.NET中,可以通过代码GC.Collect() 强制要求CLR进行垃圾回收(由于垃圾回收是异步的,CLR有一个专用的线程负责垃圾回收,因此,即使调用GC.Collect,也并不是实时的调用了Finalize,因此要保证确实调用了析构方法,可以使用语句GC.WaitForPendingFinalizers()来确保析构方法真的被运行了,...
JNI通过动态注册实现native函数

JNI通过动态注册实现native函数

一、概述通过javah工具将java代码中的native声明的函数生成标准的C/C++函数头,每个函数的名字都很长(Java_包名_类名_函数名),这样C/C++函数的函数名就是定死的,不能修改,否则java找不到函数。这里还有种方式,通过注册的方式将C/C++的函数与java中的native函数进行一一对应的,函数名可以任意书写。二、代码实现SimpleJni.javapackage com.bt.jni; public class SimpleJni...
<< 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 >>