09 2017 档案

摘要:143. Reorder List Given a singly linked list L: L0?L1?…?Ln-1?Ln,reorder it to: L0?Ln?L1?Ln-1?L2?Ln-2?… You must do this in-place without altering the 阅读全文
posted @ 2017-09-27 14:07 zqlucky 阅读(191) 评论(0) 推荐(0)
摘要:getchar:执行getchar()函数时,首先从输入缓存区读取字符,直到输入缓存区为空时才等待从键盘继续输入。scanf()之间不要有printf操作。 逗号表达式 a= (++a,1,2),只取最后一个操作进行赋值。 ++a,a++;++a是右值,原址操作。a++是左值,拷贝一份再操作,最后赋 阅读全文
posted @ 2017-09-27 13:53 zqlucky 阅读(136) 评论(0) 推荐(0)
摘要:https://leetcode.com/problems/sort-list/description/ Sort a linked list in O(n log n) time using constant space complexity. 链表类题目找中间点使用双指针算法,要判断head - 阅读全文
posted @ 2017-09-27 09:49 zqlucky 阅读(151) 评论(0) 推荐(0)
摘要:86. Partition List Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. You s 阅读全文
posted @ 2017-09-26 21:37 zqlucky 阅读(102) 评论(0) 推荐(0)
摘要:82. Remove Duplicates from Sorted List II Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from 阅读全文
posted @ 2017-09-26 20:29 zqlucky 阅读(110) 评论(0) 推荐(0)
摘要:83. Remove Duplicates from Sorted List Given a sorted linked list, delete all duplicates such that each element appear only once. For example,Given 1- 阅读全文
posted @ 2017-09-26 19:58 zqlucky 阅读(132) 评论(0) 推荐(0)
摘要:1、排序算法稳定性 稳定性的概念远没有这么复杂,它只表示两个值相同的元素在排序前后是否有位置变化。如果前后位置变化,则排序算法是不稳定的,否则是稳定的。稳定性的定义符合常理,两个值相同的元素无需再次交换位置,交换位置是做了一次无用功。主要看是否有等于=。 为什么排序算法最差情况时间复杂度是O(N^2 阅读全文
posted @ 2017-09-26 18:55 zqlucky 阅读(187) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2017-09-25 10:17 zqlucky 阅读(5) 评论(0) 推荐(0)
摘要:上下文切换详解 原文地址,译文地址,译者: 董明鑫,校对:郑旭东 上下文切换(有时也称做进程切换或任务切换)是指 CPU 从一个进程或线程切换到另一个进程或线程。进程(有时候也称做任务)是指一个程序运行的实例。在 Linux 系统中,线程就是能并行运行并且与他们的父进程(创建他们的进程)共享同一地址 阅读全文
posted @ 2017-09-20 22:16 zqlucky 阅读(2128) 评论(0) 推荐(1)
摘要:I/O多路复用——epoll函数 select、poll、epoll区别总结 一、select、poll、epoll区别总结 1 本质上都是同步I/O 三者都是I/O复用,本质上都属于同步I/O。因为三者只是负责通知应用程序什么时候数据准备好了,实际的I/O操作还是在由应用程序处理;如果是异步I/O 阅读全文
posted @ 2017-09-20 16:27 zqlucky 阅读(674) 评论(0) 推荐(0)
摘要:IO复用、多进程和多线程三种并发编程模型 I/O复用模型 I/O复用原理:让应用程序可以同时对多个I/O端口进行监控以判断其上的操作是否可以进行,达到时间复用的目的。在书上看到一个例子来解释I/O的原理,我觉得很形象,如果用监控来自10根不同地方的水管(I/O端口)是否有水流到达(即是否可读),那么 阅读全文
posted @ 2017-09-18 15:08 zqlucky 阅读(3536) 评论(0) 推荐(0)
摘要:linux网络编程之shutdown() 与 close()函数详解 参考TCPIP网络编程和UNP; shutdown函数不能关闭套接字,只能关闭输入和输出流,然后发送EOF,假设套接字为A,那么这个函数会关闭所有和A相关的套接字,包括复制的;而close能直接关闭套接字。 1.close()函数 阅读全文
posted @ 2017-09-17 11:12 zqlucky 阅读(4776) 评论(0) 推荐(0)
摘要:题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵 阅读全文
posted @ 2017-09-16 09:45 zqlucky 阅读(204) 评论(0) 推荐(0)
摘要:题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4] 阅读全文
posted @ 2017-09-14 23:21 zqlucky 阅读(122) 评论(0) 推荐(0)
摘要:sizeof只是求变量所占的字节数,sizeof(char *) = 4字节; strlen(char*) 可以得到整个字符串的长度。 如果是数组vec,那么使用sizeof就可以得到整个数组的所占的字节数目,但是要得到具体的数目,就必须除以每个字符占的字节数目。 参考:http://blog.si 阅读全文
posted @ 2017-09-13 13:20 zqlucky 阅读(17996) 评论(0) 推荐(0)
摘要:题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 使用两个栈进行存储,我们在打印某一行节点的时候,需要将下一行的节点保存到相应的栈中,如果当前打印奇数层,那么先保存左子节点,再保存右子节点; 如 阅读全文
posted @ 2017-09-13 08:58 zqlucky 阅读(443) 评论(0) 推荐(0)
摘要:题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路:二叉树的问题大部分是递归解法,联想最基本的情况进行分析,如果是 1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode 阅读全文
posted @ 2017-09-12 21:50 zqlucky 阅读(155) 评论(0) 推荐(0)
摘要:题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路: 1)如果一个节点有右子树,那么它的下一个结点就是它的右子树中的最左子节点; 2)如果一个节点没有右子树,并且它还是它父节点的右子节点,我们可以沿着 阅读全文
posted @ 2017-09-12 21:02 zqlucky 阅读(140) 评论(0) 推荐(0)
摘要:题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路:1、dummy结点的写法是,dummy -> next 等于head,然后将head等于dummy,修改后就是 阅读全文
posted @ 2017-09-12 17:02 zqlucky 阅读(167) 评论(0) 推荐(0)
摘要:题目描述 一个链表中包含环,请找出该链表的环的入口结点。 思路:这题需要知道a = c,然后head和slow每次走一步,相遇的时候就是第一个入口交点, 注意:for循环或者while循环之后,一定要判断是是否正常退出,是找到满足条件的break退出,还是不满足for循环条件退出,加一个判断。 /* 阅读全文
posted @ 2017-09-12 15:08 zqlucky 阅读(160) 评论(0) 推荐(0)
摘要:题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。本题错误的地方 阅读全文
posted @ 2017-09-12 10:38 zqlucky 阅读(173) 评论(0) 推荐(0)
摘要:题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 思路:1、暴力法 2、将B[i] = A[0] * A[1] *....* A[i - 阅读全文
posted @ 2017-09-11 16:43 zqlucky 阅读(114) 评论(0) 推荐(0)
摘要:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 思路:1、暴力法:直接遍历一遍, 阅读全文
posted @ 2017-09-11 15:30 zqlucky 阅读(158) 评论(0) 推荐(0)
摘要:题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的数值表达则返回该数字,否则返回0 示例1 输入 +2147483647 1a33 输出 21474 阅读全文
posted @ 2017-09-09 23:09 zqlucky 阅读(1805) 评论(0) 推荐(0)
摘要:解答: 正数 0 - 32,767 共32768 个 负数 -1 - -32768 共32768 个 其中 0000000000000000 表示0,1000000000000000表示-32768 负数那个也算是人为的规定。 引用/*在计算机内,定点数有3种表示法:原码、反码和补码 所谓原码就是前 阅读全文
posted @ 2017-09-09 21:51 zqlucky 阅读(713) 评论(0) 推荐(0)
摘要:迭代器只有++ ,--,==,!=四种运算方法,不能将iter = iteration+ 1,因为迭代器是指针类型,1是整数类型,不能直接相加赋值给一个指针。 题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有 阅读全文
posted @ 2017-09-09 14:41 zqlucky 阅读(215) 评论(0) 推荐(0)
摘要:题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.. 阅读全文
posted @ 2017-09-09 10:32 zqlucky 阅读(179) 评论(0) 推荐(0)
摘要:题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。注意:目前变量满足条件时,要记得将index值进行增减操作。进行所有操作后,最后得到的可能不满足要求,所以 阅读全文
posted @ 2017-09-08 21:01 zqlucky 阅读(140) 评论(0) 推荐(0)
摘要:题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 阅读全文
posted @ 2017-09-08 20:32 zqlucky 阅读(195) 评论(0) 推荐(0)
摘要:题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 注意:data[j] & lastBit 最后出来的结果是00000000,不能直接写成data[j] & lastBit == 0,这样是错误的,0是整数,前面是二进制,后面是十进制,不能直接进 阅读全文
posted @ 2017-09-08 16:48 zqlucky 阅读(146) 评论(0) 推荐(0)
摘要:题目描述 统计一个数字在排序数组中出现的次数。 思路:这题有两个点可以想到使用二分法, 1)排序的数组; 2)暴力求解的复杂度是O(n),要想优化只有二分法的logn级别。 和使用二分法找到某个数出现的区间一样,只不过要多一个变量判断是否找到这个数,因为如果不存在这个数那么两次二分法找到的位置和元素 阅读全文
posted @ 2017-09-08 10:48 zqlucky 阅读(153) 评论(0) 推荐(0)
摘要:32位机器环境下结果如下: Type Size 数值范围 无值型void 0 byte 无值域 布尔型bool 1 byte true false 有符号短整型short [int] /signed short [int] 2 byte -32768~32767 无符号短整型unsigned sho 阅读全文
posted @ 2017-09-07 23:04 zqlucky 阅读(3112) 评论(0) 推荐(0)
摘要:题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,siz 阅读全文
posted @ 2017-09-07 23:01 zqlucky 阅读(514) 评论(0) 推荐(0)
摘要:c++ 中 char 与 string 之间的相互转换问题 第一部分: 将 char * 或者 char [] 转换为 string 可以直接赋值,转换。 第二部分: 将 string 转换为 char * 或者 char [] string 是c++标准库里面其中一个,封装了对字符串的操作 把st 阅读全文
posted @ 2017-09-07 13:27 zqlucky 阅读(6372) 评论(0) 推荐(0)
摘要:题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路:第一种方法就是暴力求解方法。 class Solution { public: bool judge(i 阅读全文
posted @ 2017-09-07 11:21 zqlucky 阅读(169) 评论(0) 推荐(0)
摘要:字符串处理总结[1] 1 字符串两种表示形式 1.1 使用指向字符类型的指针 a.首先在系统的内存储器中分配一段连续的存储区域并且存放指定的字符串常量,然后将该存储区域的首地址赋值给该指针。 b.指针的指向可以更改,开始指向a,后面可以修改指向b。 c.字符类型指针指向的是字符串常量,任何试图修改常 阅读全文
posted @ 2017-09-06 15:35 zqlucky 阅读(1295) 评论(0) 推荐(0)
摘要:pow(x,y)在#include<math.h>文件中,计算x的y次方。 C++引入头文件:#include <stdlib.h> 或者 #include <cstdlib> 1、整数转化为字符串的方法: 1.1 atoi原型:注意:参数若为string类型一定转换成char*型(str.c_st 阅读全文
posted @ 2017-09-06 11:45 zqlucky 阅读(225) 评论(0) 推荐(0)
摘要:题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1 阅读全文
posted @ 2017-09-05 19:47 zqlucky 阅读(149) 评论(0) 推荐(0)
摘要:题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路:本题就是permutations有重复元素的,求整个字符串的排列,可以看成两步,首先求出所有可能出现在第一个 阅读全文
posted @ 2017-09-04 20:58 zqlucky 阅读(243) 评论(0) 推荐(0)
摘要:题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路:迭代版本: 核心思想是中序遍历,头结点需要单独设置flag变量进行初始化。 if(!s.empty()){ if(flag == 1){ head = s.top(); 阅读全文
posted @ 2017-09-04 11:39 zqlucky 阅读(245) 评论(0) 推荐(0)
摘要:题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路:要进行深拷贝,需要每次都new一个节点出来,利用unordered 阅读全文
posted @ 2017-09-03 21:37 zqlucky 阅读(200) 评论(0) 推荐(0)
摘要:题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路:这题目有点特殊,主要在于序列为空的时候,不是后序遍历,返回的是false,但是在递归的时候,递归基要写true,因为如果写false,那么递归的 阅读全文
posted @ 2017-09-03 17:19 zqlucky 阅读(335) 评论(0) 推荐(0)
摘要:题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路:层次遍历,使用queue,压入根节点,然后看左右子树,只要不为空就继续压进去。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *righ 阅读全文
posted @ 2017-09-03 14:55 zqlucky 阅读(161) 评论(0) 推荐(0)
摘要:题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度 阅读全文
posted @ 2017-09-03 11:24 zqlucky 阅读(123) 评论(0) 推荐(0)
摘要:题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路:一定要记住循环继续的条 阅读全文
posted @ 2017-09-02 23:04 zqlucky 阅读(186) 评论(0) 推荐(0)
摘要:题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。 第一遍没写出来错误点:认为首先应该找到pRoot1等于pRoot2的节点,但是递归就是自己在不断递归中寻找相等的节点的。判断是否相等可以完全放到另外一个函数中进行判断。主函数主要就是看结果,比较 阅读全文
posted @ 2017-09-02 21:15 zqlucky 阅读(136) 评论(0) 推荐(0)
摘要:题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 这题说明自己对链表还是不熟悉。 1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 阅读全文
posted @ 2017-09-02 19:47 zqlucky 阅读(138) 评论(0) 推荐(0)
摘要:题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路:先找到第一个偶数,位置为i,然后从i + 1开始找第一个奇数,将这个奇数保存起来,将[i , j - 1]这个 阅读全文
posted @ 2017-09-02 11:15 zqlucky 阅读(168) 评论(0) 推荐(0)
摘要:数值的整数次方: 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路:头文件:#include <math.h> pow() 函数用来求 x 的 y 次幂(次方),其原型为: double pow(double x, dou 阅读全文
posted @ 2017-09-01 14:15 zqlucky 阅读(162) 评论(0) 推荐(0)