
Android 系统笔试题
文章平均质量分 67
Android系统攻城狮
《Android系统多媒体进阶实战》一书作者
展开
-
算法复杂度O(1),O(n),O(logn),O(nlogn)的区别
算法复杂度分为时间复杂度和空间复杂度:时间复杂度是指执行这个算法所需要的计算工作量 空间复杂度是指执行这个算法所需要的内存空间1.对于一个循环,假设循环体的时间复杂度为 O(n),循环次数为 n,则这个循环的时间复杂度为 O(n×1)。void aFunc(int n) { for(int i = 0; i < n; i++) { // 循环次数为 n printf("Hello, World!\n"); // 循环体时间复杂度为 O(转载 2022-01-06 23:18:06 · 1397 阅读 · 0 评论 -
函数栈调用解析复习
复习参考资料动态加载相关 arm相关 x86相关1 共性一个函数都可以分为三部分prologue: 这部分负责相关栈和寄存器的初始化 body: 这部分负责函数运算主题部分 Epilogue: 这部分负责对函数栈的清理和恢复工作2 x86的函数调用转存失败重新上传取消 12345678910111213141516171819202122232425262728293031 .转载 2021-06-18 00:20:05 · 334 阅读 · 0 评论 -
Java中HashMap原理
HashMap的底层是数组+链表,(很多人应该都知道了)JDK1.7的是数组+链表(1.7只是一个例子,以前的话也是这样后面就以1.7为例子了)首先是一个数组,然后数组的类型是链表元素是头插法JDK1.8的是数组+链表 或者 数组+红黑树首先是一个数组,然后数组的类型是链表在链表的元素大于8的时候,会变成红黑树在红黑树的元素小于6的时候会变成链表元素进行尾插HaspMap的数组默认大小为16数组也叫做Hash桶(貌似听说这个值和阿里巴巴Java开发手册好像有点关系)HashMa转载 2020-06-04 09:44:36 · 360 阅读 · 0 评论 -
单链表的逆置-C++实现(五十四)
对于单链表的逆置有两种方法可以实现:(1)利用辅助指针 基本思想:在遍历结点过程中,设置辅助指针,用于记录先前遍历的结点。这样依次编译的过程中只需修改其后继结点的next域即可。 实现代码:[cpp]view plaincopyprint?typedefintDat转载 2016-11-13 21:02:36 · 794 阅读 · 0 评论 -
递归的本质(栈:后进先出)
栈:就是后进先出的一种数据结构,所谓的后进先出就是:后入栈变量数据,先出栈计算处理.递归:与栈类似,递归到最内层(到退出条件),开始从内层向外逐层调用函数自己计算处理.帮助理解递归,写一个阶乘函数factorial(4) = 4 * factorial(3) = 4 * (3 * factorial(2) ) =...原创 2019-03-26 20:43:19 · 2917 阅读 · 0 评论 -
单链表头插法和尾插法
#include <iostream>using namespace std;class List{public: List(){create_List();} ~List(){} void create_List(); void insert_head(const int &d); void insert_end(const int &d)...原创 2019-03-24 00:08:34 · 9893 阅读 · 0 评论 -
单向链表反转(逆置)
参考#include <iostream>using namespace std;class List {public: //节点结构 struct Node{ int data; Node * next; Node(const int& d):data(d),next(NULL){} }; Node *head;//头节点...原创 2019-03-25 17:13:39 · 479 阅读 · 0 评论 -
双向链表尾插法(二)
参考#include <iostream>using namespace std;typedef struct Node pNode;struct Node{ int data; pNode *prev,*next; Node(const int& d):data(d),prev(NULL),next(NULL){} };/* 初始化...原创 2019-03-29 00:39:42 · 3641 阅读 · 1 评论 -
数组全排列
#include <iostream>#include <vector>using namespace std;//打印结果void print(const vector<int> &v){ for (vector<int>::const_iterator it = v.begin(); it != v.end()...原创 2019-04-26 17:44:52 · 268 阅读 · 0 评论 -
strcpy 实现 - 笔试题
#include char *strcpy(char *strDest, const char *strSrc){ if(strDest != NULL && strSrc != NULL){ char *address = strDest; while((*strDest++ = *strSrc++) != '\0') return address;原创 2016-10-08 17:23:21 · 496 阅读 · 0 评论 -
C语言中字符串结束符'\0'
本质'\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写。'\0'就是 字符串结束标志。'\0'是转译字符,意思是告诉编译器,这不是字符0,而是空字符。空字符\0对应的二进制为00000000,而数字0为00110000原来,在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以'\0'作为串的结束符。因此当把一个字符串存入一转载 2016-10-08 16:12:07 · 1113 阅读 · 0 评论 -
C语言反转单链表
反转单链表 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义如下: struct node { int val; struct node *pNext; };[cpp] view plain copy转载 2016-06-15 15:24:28 · 587 阅读 · 0 评论 -
单链表定义
单链表1、链接存储方法 链接方式存储的线性表简称为链表(Linked List)。 链表的具体存储表示为: ① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的) ② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的...转载 2016-06-15 15:55:33 · 1392 阅读 · 0 评论 -
单链表的运算
下一页1、建立单链表 假设线性表中结点的数据类型是字符,我们逐个输入这些字符型的结点,并以换行符'\n'为输入条件结束标志符。动态地建立单链表的常用方法有如下两种:(1) 头插法建表① 算法思路 从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表头上,直到读入结束标志为止。转载 2016-06-15 16:03:05 · 384 阅读 · 0 评论 -
c语言中冒泡排序、插入排序、选择排序算法比较
掌握好常用的排序算法,在实际的项目开发中可以节省很多的时间。每一种排序算法在执行的效率上是存在差别的,这些微小的时间差,也许在平常的联系当中感觉不到,但是涉及到数据量比较大或者是在资源比较紧张的系统中就显得尤其的重要,比如嵌入式系统。下面简要介绍三种常用的排序算法以及他们的执行效率的比较。 冒泡排序: 思路:将相邻的两个数比较,将较小的数调到前头;有n个数就转载 2016-06-15 15:12:39 · 518 阅读 · 0 评论 -
单链表反转(递归和非递归)
单链表反转有递归和非递归两种算法。下面定义节点[cpp] view plain copy typedef struct ListNode{ int value; ListNode* next; }ListNode; 在递归算法中的做法是:1找到最后一个节点和倒数第二个节点转载 2016-09-18 22:44:44 · 475 阅读 · 0 评论 -
extern "C"用法 - 笔试题
1.应用场景:.cpp文件中C++调用C代码 extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。 由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语原创 2016-10-08 15:29:52 · 495 阅读 · 0 评论 -
单链表的逆置-C++实现(ok)
对于单链表的逆置有两种方法可以实现:(1)利用辅助指针 基本思想:在遍历结点过程中,设置辅助指针,用于记录先前遍历的结点。这样依次编译的过程中只需修改其后继结点的next域即可。 实现代码:[cpp] view plain copy print?typedef int Dat转载 2016-10-10 21:58:08 · 481 阅读 · 0 评论 -
C++笔试题整理(一)
资料来源:http://blog.youkuaiyun.com/dongfengsun/article/details/15419261.已知String类定义如下:class String{public:String(const char *str = NULL); // 通用构造函数String(const String &another); // 拷贝构造函数~转载 2016-10-10 21:59:48 · 452 阅读 · 0 评论 -
c++笔试题整理(二)
笔试才发现很多基本的东西都忘记了,以后面试前要看看这篇文章了!唉,老了!①链表反转单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往转载 2016-10-10 22:08:13 · 519 阅读 · 0 评论 -
上海传音控股驱动开发笔试题
约定:数据类型 int 四个字节(32位系统,认为整型是4个字节),char 一个字节答题时间:60分钟1.计算结果[cpp] view plain copy char str[] = "hello"; sizeof(str) = 6; char *p = str sizeof(p) = 4; void *pbuf = mal转载 2016-10-24 17:27:51 · 2083 阅读 · 0 评论 -
Android/Java面试题,边面试边成长,为了应试而应试
Android/Java面试题,边面试边成长,为了应试而应试从今天起,所有面试或遇到过的面试题,都整理到此文章下,提醒自己时刻要学习,同时分享给各位。【部分网上整理】Java基础 1,Java中一个汉字占多少字节?java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节,都是一个char。 char c1 = ‘中’; c转载 2016-02-16 22:13:44 · 684 阅读 · 0 评论