• avatar Parzulpan 2018-12-06 22:59:00

    计算机考研程序设计 进制转换

    题目描述 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串。 输出描述: 输出该数值的十进制字符串。 示例1 输入

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-06 22:50:00

    计算机考研程序设计 计算字符个数

    题目描述 写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。 输入描述: 输入一个有字母和数字以及空格组成的字符串,和一个字符。 输出描述: 输出输入字符串中含有该字符的个数。 示

    来自 Parzulpan
    01
  • avatar Parzulpan 2019-07-27 17:34:00

    面试题3:数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2或者3。

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-06 22:29:00

    计算机考研程序设计 明明的随机数

    题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-06 22:10:00

    计算机考研复试 中位数

    题目描述 中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数). 给出一组无序整数,求出中位数,如果求最中间两个数的平均数,向下取整即可(不需要使用浮点数) 输入描述: 该程序包含多组测试数据,每一组测试数据的第一行为N,代表该组测

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-05 16:18:00
    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-05 16:12:00

    二分查找模板 III

    模板 #3: int binarySearch(vector<int>& nums, int target){ if (nums.size() == 0) return -1; int left = 0, right = nums.siz

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-05 16:10:00

    LeetCode153 寻找旋转排序数组中的最小值

    假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 示例 1: 输入: [3,4,5,1,2] 输出: 1 示例 2: 输入:

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-05 16:03:00

    LeetCode162 寻找峰值

    峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 示例 1: 输入:

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-05 15:55:00

    LeetCode278 第一个错误的版本

      你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 

    来自 Parzulpan
    00
  • avatar CroMarmot 2019-07-08 09:31:00

    USACO 6.5 章节 世界上本没有龙 屠龙的人多了也便有了

    All Latin Squares 题目大意 n x n矩阵(n=2->7) 第一行1 2 3 4 5 ..N 每行每列,1-N各出现一次,求总方案数 题解 n最大为7 显然打表 写了个先数值后位置的暴搜 #include <bits/stdc++.h> #defi

    来自 CroMarmot
    00
  • avatar Parzulpan 2018-12-05 15:41:00

    二分查找模板 II

    模板 #2: int binarySearch(vector<int>& nums, int target){ if(nums.size() == 0) return -1; int left = 0, right = nums.size(); wh

    来自 Parzulpan
    00
  • avatar CroMarmot 2019-07-04 10:18:00

    USACO 6.4 章节

    The Primes 题目大意 5*5矩阵,给定左上角 要所有行,列,从左向右看对角线为质数,没有前导零,且这些质数数位和相等(题目给和) 按字典序输出所有方案。。。 题解 看上去就是个 无脑暴搜 题目条件翻译成处理或剪枝 按照 字典序顺序搜, 末位是奇数 和确定了,那

    来自 CroMarmot
    00
  • avatar CroMarmot 2019-07-01 10:11:00

    USACO 6.3 章节 你对搜索和剪枝一无所知QAQ

    emmm........很久很久以前 把6.2过了 所以emmmmmm 直接跳过 ,从6.1到6.3吧 Fence Rails 题目大意 N<=50个数A1,A2... 1023个数,每个数数值<=128,B 问 A 们能拆分成多少个B,求最多的个数 样例 解释 A: 30

    来自 CroMarmot
    00
  • avatar Parzulpan 2018-12-05 15:37:00

    LeetCode33 搜索旋转排序数组

    假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-05 15:26:00

    LeetCode374 猜数字大小

      我们正在玩一个猜数字游戏。 游戏规则如下:我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。每次你猜错了,我会告诉你这个数字是大了还是小了。你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0): -1 : 我的数字比较小 1 :

    来自 Parzulpan
    00
  • avatar CroMarmot 2019-06-26 14:31:00

    USACO 6.1 章节

    Postal Vans 题目大意 4*n的网格,要经过所有点的有向有环,不重复经过点的路径总数 n<=1000 题解 显然 插头dp 以4为切面 问题是,会发现 超精度 解决呢要么实现高精度,要么换python XD c++实现 未+高精度,会爆掉 #include <

    来自 CroMarmot
    00
  • avatar CroMarmot 2019-06-25 00:01:00

    USACO 5.5 章节

    Picture 题目大意 IOI 1998 求n (<=5000)个矩形 覆盖的图形 的周长(包括洞), 坐标范围[-10000,10000] 题解 一眼离散化+2维线段树,但仔细一想 空间不太够,时间勉强接受 然后目测可能1维线段树+扫描线了? 然后 竟然 裸的扫描线可以过,如

    来自 CroMarmot
    00
  • avatar Parzulpan 2018-12-05 15:14:00

    LeetCode69 x 的平方根

      实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842...,

    来自 Parzulpan
    00
  • avatar CroMarmot 2019-06-11 00:10:00

    USACO 5.4 章节

    Canada Tour 题目大意 双向连通图,点从左向右排列, 你需要先从最左的点到最右的点,(过程中只能从左向右走) 然后再从最右的点返回最左的点,(过程中只能从右向左走) 过程中除了最左的点,其它点都至多能经过一次 求最多能经过的点的个数 题解 从右向左走反过来,就是说从左向右走

    来自 CroMarmot
    00
  • avatar Parzulpan 2018-12-05 14:54:00

    二分查找模板 I

    模板 #1: int binarySearch(vector<int>& nums, int target){ if(nums.size() == 0) return -1; int left = 0, right = nums.size() - 1;

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-05 14:50:00

    LeetCode704 二分查找

    给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-04 20:30:00

    LeetCode220 存在重复元素 III

    给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。 示例 1: 输入: nums = [1,2,3,1], k= 3, t = 0 输出: true 示例 2: 输

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-04 20:25:00

    LeetCode109 将有序链表转为二叉搜索树

    给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null,

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-04 20:18:00

    LeetCode235 二叉搜索树的最近公共祖先

    给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树:  root = 

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-04 20:12:00

    LeetCode703 流中第k大的元素

    前言: 我们已经介绍了二叉搜索树的相关特性,以及如何在二叉搜索树中实现一些基本操作,比如搜索、插入和删除。熟悉了这些基本概念之后,相信你已经能够成功运用它们来解决二叉搜索树问题。 二叉搜索树的有优点是,即便在最坏的情况下,也允许你在O(h)的时间复杂度内执行所有的搜索、插入、删除操作。 通常来

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-04 20:00:00

    LeetCode450 删除二叉搜索树中的节点

    给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。 一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点; 如果找到了,删除它。 说明: 要求算法时间复杂

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-04 19:45:00

    LeetCode701 二叉搜索树中插入结点

    给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。 例如,  给定二叉搜索树: 4

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-04 19:33:00

    LeetCode700 二叉搜索树中搜索

    给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2

    来自 Parzulpan
    00
  • avatar CroMarmot 2019-05-19 22:43:00

    USACO 5.3 章节

    相关讲解可在USACO上看原文,也可以搜索nocow找到翻译的! (nocow上有些微翻译是有问题的,如果想看nocow翻译的建议也对着英文看) 以下记录以下 自己之前未掌握的一些要点,以及按自己的括号表述的形式来记录。 USACO Section 5.3 启发式搜索 启发式搜索的主要思想是通

    来自 CroMarmot
    00
  • avatar Orangeko 2019-07-20 21:55:00

    字典树【训练】

      字典树(trie):或名前缀树,哈希树的变种,大多题目(非水题)与哈希树套用求解。矮+胖为其显著特征,以空间换时间的典例。 通过利用字符串的公共前缀可实现字符串的快速查询。 板子如下: #include <bits/stdc++.h> using namespace s

    来自 Orangeko
    00
  • avatar Orangeko 2019-07-13 09:26:00

    HDU-1175 连连看【BFS】

    From:http://acm.hdu.edu.cn/showproblem.php?pid=1175 题意:0为空,数字1~n代表不同的棋子,给出一个棋盘和q对两个棋子的坐标(x1,y1)、(x2,y2),问能否消除。 思路:BFS向一个方向搜,若搜不到则转向,若能在转向次数<=2时

    来自 Orangeko
    00
  • avatar Orangeko 2019-07-12 11:15:00

    跳跃【BFS】

    From 牛客网:https://ac.nowcoder.com/acm/problem/25160   如题,bfs、dfs都可,后续补dfs版本。 题意,从起点到终点,类似Chess中Knight的走法,即日字形,日字的长宽由m1,m2决定。且0为水不可踩,2为岩石不可踩。 思路

    来自 Orangeko
    00
  • avatar Parzulpan 2018-12-04 19:26:00

    LeetCode173 二叉搜索树迭代器

    实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 注意: next() 和hasNext() 操作的时间复杂度是O(1),并使用 O(h) 内存,其中 h 是树的高度。       /** * Def

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-04 19:17:00

    LeetCode98 验证二叉搜索树

      给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / \ 1 3

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:59:00

    LeetCode841 钥匙和房间

    有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。 在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,...,N-1] 中的一个整数表示,其中 N

    来自 Parzulpan
    00
  • avatar Orangeko 2019-07-10 09:22:00

    Bad Hair Day【单调栈】

    ----------------------------From nowcoder:https://ac.nowcoder.com/acm/contest/984/A-----------------------------------  n(1~80000),一开始写了个O(n^2)+剪的写法,

    来自 Orangeko
    00
  • avatar Parzulpan 2018-12-03 22:58:00

    LeetCode542 01矩阵

      给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 示例 2: 输入: 0 0 0 0 1 0 1 1 1 输出: 0

    来自 Parzulpan
    01
  • avatar Parzulpan 2018-12-03 22:57:00

    LeetCode394 字符串解码

    给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此

    来自 Parzulpan
    00
  • avatar kjnzhibo 2019-07-26 20:38:01

    红黑树(RBT)RED BLACK TREE

    红黑树(RBT)是一种插入、删除、查找的时间复杂度都是log2N的一种二项搜索树,红黑树具有五个性质: (1).树中只有红节点或者黑节点; (2).两个红节点不能互为父子; (3).树的叶子节点都是黑节点,节点为空的时候也称为Nil; (4).树的根节点必须是黑色的; (5).从任意节点出发到其所有

    来自 kjnzhibo
    00
  • avatar kjnzhibo 2019-07-23 23:53:31

    二分查找树BST(Binary Search Tree)

    二分查找树BST(Binary Search Tree)目的是为了提高查找的性能,其查找在平均和最坏的情况下都是logn级别,接近二分查找。其特点是:每个节点的值大于其任意左侧子节点的值,小于其任意右节点的值。 一.BST节点的构造 二分查找树的节点与普通二叉树的节点类似: typedef

    来自 kjnzhibo
    00
  • avatar cwang_running 2019-06-05 21:54:10

    链表手撕代码(链表的创建、头插法、尾插法、部分反转、全部反转、链表的排序、链表的销毁)

    链表作为基础数据结构中的必考知识点,考察指针操作。为了方便后期更好地总结学习,现将链表问题简单总结如下: 链表的创建、头插法、尾插法、部分反转、全部反转、链表的排序、链表的销毁。直接上代码: #include <stdlib.h> #include<iostream>

    来自 cwang_running
    00
  • avatar cwang_running 2018-11-04 16:31:50

    vs2010环境下,C#调用C++的dll过程中常见三大问题(内存损坏、托管调试堆栈不对称、调试dll)及解决方案

    Problem1:C# 尝试读取或写入受保护的内存,这通常指示其他内存已损坏。System.AccessViolationException Solution1:dll项目中的函数声明:CPPDLLEXPORT_API void bayes(char* inFileName,float* Tex,

    来自 cwang_running
    00
  • avatar cwang_running 2018-08-03 15:31:33

    Google nexus 6p android 8.0——&gt;android 6.0 两部曲

    Google nexus 6p android8.1降级至android6.0两步曲 一、解锁的安装使用(两个锁:oem和bootloader,需要人为地unlock)   1、电脑端的操作部分 使用最新的SDK运行环境配合,否则无法执行相关解锁命令,下面是platform_tool环境的官方

    来自 cwang_running
    00
  • avatar cwang_running 2018-06-01 15:14:49

    阿里笔试题破解八卦阵问题

    题目如下: 八卦阵相传是诸葛亮创设的一种战斗队形和***,由八种阵势组成。为了方便,采用矩阵描述一个八卦阵,它由八个单阵组成,,每个单阵由多个兵力区域组成一种阵势,如图所示,其中数字为一个兵力区域的士兵个数。假设单阵与单阵之间兵力区域不会相邻,且单阵中兵力区域至少存在一个兵力相邻区域(注:相邻是指再

    来自 cwang_running
    02
  • avatar cwang_running 2018-05-20 18:39:32

    动态规划之TSP(Travel Salesman Problem)算法

    旅行商问题(Traveling Saleman Problem,TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。字面上的理解是:有一个推销员,要到n个城市推销商品,他要找出一个

    来自 cwang_running
    00
  • avatar Parzulpan 2018-12-03 22:55:00

    LeetCode232 用栈实现队列

    使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 示例: MyQueue queue = new MyQueue();

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:55:00

    LeetCode225 用队列实现栈

    使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop fro

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:54:00

    LeetCode494 目标和

      给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示例 1: 输入: nums: [1, 1, 1

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:53:00

    LeetCode133 克隆图

      克隆一张无向图,图中的每个节点包含一个 label (标签)和一个 neighbors (邻接点)列表 。 OJ的无向图序列化: 节点被唯一标记。 我们用 # 作为每个节点的分隔符,用 , 作为节点标签和邻接点的分隔符。 例如,序列化无向图 {0,1,2#1,2#2,2}。 该图总共

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:57:00

    LeetCode733 图像渲染

      有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。 为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:52:00

    LeetCode150 逆波兰表达式求值

    根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入: [

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:51:00

    LeetCode20 有效的括号

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出:

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:51:00

    LeetCode739 每日温度

    根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数。如果之后都不会升高,请输入 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1,

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:50:00

    LeetCode155 最小栈

      设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: MinSta

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:49:00

    LeetCode279 完全平方数

    给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 =

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2019-07-16 15:43:05

    epoll源码分析

    码字不易,转载请标明出处 前言 Linux内核提供了3个关键函数供用户来操作epoll,分别是: epoll_create(), 创建eventpoll对象  epoll_ctl(), 操作eventpoll对象  epoll_wait(), 从eventpoll对象中返回活跃

  • avatar 淘系技术部招聘 2019-05-10 22:18:57

    『项目总结』基于线程池的矢量瓦片切割技术

    最近把项目中负责矢量瓦片切割的功能模块做成了并行计算模式,写一篇博客来总结一下。   1. 技术简介 1.1 矢量瓦片 传统的栅格地图切片,是服务器端预先绘制的PNG或JPG切片集合。而矢量地图切片将矢量数据通过不同的描述文件来组织和定义,通常通过自定义文件或json文件进行传输,在前端按需

  • avatar 淘系技术部招聘 2019-04-18 12:06:32

    『APUE自学笔记』高级IO

    非阻塞 思考:读普通文件会阻塞吗? 读普通文件时,如果读到了数据就成功返回,如果没有读到数据返回0,总之不会阻塞。 思考:写文件时会阻塞吗? 在写某些文件时,当文件不能立即接收写入的数据时,也可能会导致写操作阻塞,一直阻塞到写成功为止。 如何实

  • avatar 淘系技术部招聘 2019-04-17 15:54:46

    『APUE自学笔记』进程间通信

    IPC概述 进程间实现数据共享容易吗? 如果进程空间之间有可以共享的交叠空间的话,进程间可以通过这个交叠的空间,很容易的就能实现数据共享。但是实际情况是,每个进程的进程空间是完全独立的,进程空间没有任何的交叠,所以实现数据共享的难度很高。 为什么进程空间是完全独立的?

  • avatar 淘系技术部招聘 2019-04-13 11:15:10

    『APUE自学笔记』线程

    进程的缺点 (1)进程间切换的计算机资源开销很大,切换效率非常低 OS是通过虚拟内存机制来实现进程空间独立的,进程在并发运行时需要相互间的切换,切换时必然涉及虚拟内存机制的控制,但是虚拟内存机制比较复杂,所以在进行进程间切换时,会耗费CPU、cache、内存等计算机资源,也非常耗费切换时间

  • avatar 淘系技术部招聘 2019-04-12 11:17:27

    『APUE自学笔记』进程控制

    三个特殊进程 PID==0(调度进程) 作用:实现进程间的调度和切换,该进程会让CPU轮换的执行所有的进程。 OS启动起来后,最后有一部分代码会持续的运行,这个就是调度的进程。由于这个进程是OS的一部分,凡是由OS代码演变来的进程,都称之为系统进程。 PID==1(i

  • avatar 淘系技术部招聘 2019-04-11 14:58:53

    『APUE自学笔记』进程环境

    启动代码 C程序运行时,最开始运行的是启动代码,启动代码再去调用main函数,然后整个C程序都已运行。 由编译器提供的,一般有两种提供方式:①源码、②二进制(gcc采用这种) gcc -v [文件名] 可以查看gcc编译链接的详细情况时,可以看到有很多*.o,这些 .o文件就是gcc提供的启动代码

  • avatar 淘系技术部招聘 2019-04-10 22:13:16

    『APUE自学笔记』文件IO

    注意!以下系统调用的具体使用方法可通过"man 2 open"命令查看使用手册。 1. open() 返回值 如果打开成功,返回一个非负整数的文件描述符。 如果打开失败,返回-1,并且设置错误号给系统定义的全局变量errno,用于标记函数到底出了什么错误。

  • avatar Parzulpan 2018-12-03 22:46:00

    LeetCode622 设计循环队列

    设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2019-04-02 19:40:51

    Linux 3.9内核新特性SO_REUSEPORT

    转自:http://www.cnblogs.com/Anker/p/7076537.html 1、前言   昨天总结了一下Linux下网络编程“惊群”现象,给出Nginx处理惊群的方法,使用互斥锁。为例发挥多核的优势,目前常见的网络编程模型就是多进程或多线程,根据accpet的位置,分为如下场景

  • avatar Parzulpan 2018-12-03 22:46:00

    LeetCode200 岛屿的个数

    给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入: 11110 11010 11000 00000 输出: 1 示例 2: 输入: 110

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2019-04-02 19:37:33

    Epoll在LT和ET模式下的读写方式

    转自:https://blog.csdn.net/qq_21910105/article/details/79983960 在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 从字面上看, 意思是

  • avatar Parzulpan 2018-12-03 22:44:00

    LeetCode61 旋转链表

      给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步:

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2019-03-27 09:04:45

    Linux线程同步之条件变量pthread_cond_t

    转自:https://www.cnblogs.com/zhx831/p/3543633.html 一直以来都天真的认为线程间同步的方法只有信号量,互斥量,邮箱,消息队列,知道最近开始研究一些Linux方面的代码才发现自己是多么的很傻很天真。在Linux中还存在这一种叫做条件变量的东西。必须承认我在

  • avatar Parzulpan 2018-12-03 22:43:00

    LeetCode138 复制带随机指针的链表

      给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深度拷贝。        //章节 - 链表 //四、小结 //4.复制带随机指针的链表 /* 算法思想: emmm..这道题不会0.0 参

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2018-09-04 22:24:06

    ENVI 5.x 目录结构以及文件结构

    目录结构: Bin :相应的ENVI运行目录。Classic : ENVI经典模式安装路径。custom code :自定义代码。对envi做功能扩展的时候,比如想将自己在IDL写的函数运用到ENVI的图像处理中,就需要将函数的源码编译后放入该文件夹即可。 data : ENVI自带数据目录。E

  • avatar 淘系技术部招聘 2018-08-22 15:49:09

    图像处理:如何理解傅里叶变换在图像处理中的应用

    声明:               这篇文章的主要目的是通过建立一维傅里叶变换与图像傅里叶变换中相关概念的对应关系来帮助读者理解图像处理中的离散傅里叶变换,因此,理解图像中离散傅里叶变换的前提条件是读者需要了解一维傅里叶变换的基本知识,详情可参考:https://zhuanlan.zhihu.co

  • avatar Parzulpan 2018-12-03 22:47:00

    LeetCode752 打开转盘锁

    你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为  '0','0'变为 '9' 。每次旋转都只能旋转一个拨轮的一位数字。 锁的初始数字为 '00

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2018-08-19 22:11:59

    图像分割:分水岭算法的直观理解以及一个应用的小技巧

    建议先看下这篇博文:https://www.cnblogs.com/mikewolf2002/p/3304118.html 分水岭算法的直观表现(红***域为marker): 分水岭算法的运算过程可以理解成4个环节: (1)根据marker灰度值的不同,从小到大的对marker赋予编号(灰

  • avatar Parzulpan 2018-12-03 22:42:00

    LeetCode430 扁平化多级双向链表

    您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 扁平化列表,使所有结点出现在单级双链表中。您将获得列表第一级的头部。   示例: 输入: 1---2---3--

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2018-06-06 09:43:21

    python爬虫:使用selenium、unittest和BeautifulSoup爬取斗鱼tv的当前直播人数

    import unittest from selenium import webdriver from bs4 import BeautifulSoup as bs class douyu(unittest.TestCase): def setUp(self): self

  • avatar Parzulpan 2018-12-03 22:41:00

    LeetCode2 两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 ->

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2018-05-29 12:24:17

    python爬虫:无视https的CA安全认证

    import urllib.request import ssl context = ssl._create_unverified_context() url = 'https://www.12306.cn/mormhweb/' request = urllib.request.Request

  • avatar 淘系技术部招聘 2018-05-27 23:26:21

    Scrapy实践:爬取腾讯社会招聘信息(文字爬取)

    注:爬取后的信息将以json格式存储,并将文件命名为“recruit.json”可用Notepad++打开。 代码实现: items.py # -*- coding: utf-8 -*- import scrapy class TxhrItem(scrapy.Item): #职位名

  • avatar Parzulpan 2018-12-03 22:40:00

    LeetCode21 合并两个有序链表

    将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。  示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 //章节 - 链表 //四、小结

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2018-05-27 23:14:02

    Scrapy实践:爬取斗鱼TV主播的头像(重写ImagesPipeline实现图片爬取)

    注:若运行以下代码报出有关“PIL”的错误,则只需安装pillow即可。 实现思路: (1)使用Fiddler抓包工具,找出为斗鱼APP颜值区提供数据的URL(Json格式)(2)在items中定义需要记录的相关信息(3)在spider中实现迭代爬取各主播的信息(4)在Pipeline中通过继承内置

  • avatar Parzulpan 2018-12-03 22:38:00

    LeetCode328 奇偶链表

      给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2018-05-10 20:48:31

    关于python中嵌套导入模块的问题成因及解决方案

    在以下代码中,无论执行a.py还是b.py,都会报错。 # a.py from b import y def x(): print('x') # b.py from a import x def y(): print('y') #在a.py中运行,产生的报错内容如下 Traceb

  • avatar Parzulpan 2018-12-03 22:38:00

    LeetCode234 回文链表

    请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?       //章节 - 链表

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:37:00

    LeetCode203 移除链表元素

    删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 //章节 - 链表 //三、经典问题 //2.移除链表

    来自 Parzulpan
    00
  • avatar 淘系技术部招聘 2018-04-28 20:39:41

    在使用ArcMap中的核密度分析时“输出像元大小”出现异常数的解决方案

    我在制作热力图时,就遇到了如下图所示的问题。 而这个问题是因为核密度分析的输入数据采用的是地理坐标系所导致的。(核密度分析的输入数据要求采用投影坐标系) 当我将输入数据转换为投影坐标系时,这个问题就迎刃而解了。

  • avatar Parzulpan 2018-12-03 22:35:00

    LeetCode19 删除链表的倒数第N个节点

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶:

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:34:00

    LeetCode142 环形链表 II

    给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 说明:不允许修改给定的链表。 进阶:你是否可以不用额外空间解决此题?       //章节 - 链表 //二、双指针技巧 //2.环形链表 II /* 算法思想: 还是要设快慢指针,

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:34:00

    LeetCode160 相交链表

    编写一个程序,找到两个单链表相交的起始节点。   例如,下面的两个链表: A: a1 → a2 ↘ c1 → c2 → c3 ↗ B:

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:36:00

    LeetCode206 反转链表

    反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?       //章节 - 链表

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:33:00

    LeetCode141 环形链表

    给定一个链表,判断链表中是否有环。 进阶:你能否不使用额外空间解决此题?       //章节 - 链表 //二、双指针技巧 //1.环形链表 /* 算法思想: 想象一下,有两个速度不同的跑步者。如果他们在直路上行驶,快跑者将首先到达目的地。但是,如果它们在圆形跑

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:32:00

    LeetCode707 设计链表

    设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。 在链表类中实

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:29:00

    LeetCode283 移动零

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。     //章节 -

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:28:00

    LeetCode26 删除排序数组中的重复项

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nu

    来自 Parzulpan
    00
  • avatar 勿忘初衷NKU 2019-07-27 18:51:13

    《剑指Offer》14链表中倒数第k个结点

    题目: 输入一个链表,输出该链表中倒数第k个结点。 思路: 遍历整个链表,每到一个结点k--,若k不等于0再遍历结点,每到一个结点k++,直到k等于0。 过去提交的通过的答案: /* public class ListNode {     int val;     List

    来自 勿忘初衷NKU
    00
  • avatar Parzulpan 2018-12-03 22:26:00

    LeetCode151 翻转字符串里的单词

    给定一个字符串,逐个翻转字符串中的每个单词。 示例:   输入: "the sky is blue", 输出: "blue is sky the". 说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的

    来自 Parzulpan
    00
  • avatar Parzulpan 2018-12-03 22:25:00

    LeetCode119 杨辉三角 II

    给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 <small>在杨辉三角中,每个数是它左上方和右上方的数的和。</small> 示例: 输入: 3 输出: [1,3,3,1] 进阶: 你可以优化你的算法到 O(k) 空间复杂度吗?  

    来自 Parzulpan
    00