- 博客(235)
- 资源 (1)
- 收藏
- 关注
原创 【每日leetcode】摆动排序II
摆动排序II空间复杂度O(n),时间复杂度O(nlogn)对原数组排序,得到排序后的辅助数组tmp对原数组的偶数位下标从末尾元素开始填充对原数组的奇数位下标从末尾元素开始填充注意:不要从头开始填充,例如[5 4 5 6],从头开始是[4 5 5 6],而从尾开始是[ 5 65 4]class Solution {public: void wiggleSo...
2019-07-13 00:05:00
153
原创 【每日leetcode】颜色分类
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计...
2019-07-12 23:42:08
204
原创 [每日leetcode]最大数
最大数给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。class Solution {public: string largestNumber(vector<int>&...
2019-07-12 22:32:44
190
原创 【每日leetcode】用栈实现队列、用队列实现栈
用栈实现队列使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.po...
2019-07-11 00:13:54
134
原创 [每日leetcode]搜索旋转排序数组 II
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。示例 1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例 2:输入: nums = [2,5,6...
2019-07-10 22:28:37
218
原创 创建线程报错 undefined reference to `pthread_create'
创建线程#include<stdio.h>#include<pthread.h>void* say_hello(void* args){ printf("hello from thread\n"); pthread_exit((void*)1); } int main(){ pthread_t tid; int iret=pthread_create(&a...
2019-06-29 00:07:32
447
原创 寒武纪笔试题--非整除集合
表示没做出来,问了别人。给定一个由正整数组成的集合S,找出一个最大的子集合S·,使得S·中任意两个数字的和都不能被K整除。例如S=「10,10,12,19,22,24,25」,K=4。S·的可能取值为「10,12,25」或者「19,22,25」等,S·最多只能取3个数。输入描述:输入为两行,第一行两个数字,分别表示集合S的元素数量N和K。第二行为N个数字,分别是S的各个元素值。1<N...
2019-06-24 13:53:44
1185
原创 [每日leetcode]数据流的中位数
中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。示例:addNum(1)...
2019-06-18 16:51:26
339
原创 [每日leetcode]奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2-&g...
2019-06-13 23:08:50
139
2
原创 【每日leetcode】相交链表
编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如...
2019-06-12 11:05:00
216
原创 dota数据集的裁剪并转成xml格式
import osimport scipy.misc as miscfrom xml.dom.minidom import Documentimport numpy as npimport copy, cv2def save_to_xml(save_path, im_height, im_width, objects_axis, label_name,name): im_dep...
2019-06-12 10:16:56
3086
12
原创 [每日leetcode]排序链表
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5采用归并排序,将数组换成链表即可/** * Definition for s...
2019-06-11 19:23:46
201
原创 [每日leetcode]对链表进行插入排序
对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到...
2019-06-11 17:07:01
143
原创 [每日leetcode]复制带随机指针的链表
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。示例:输入:{“KaTeX parse error: Expected '}', got 'EOF' at end of input: …":"1","next":{"id”:“2”,“next”:null,“random”:{“KaTeX parse error: Exp...
2019-06-11 16:06:52
167
原创 excel图表坐标轴怎么加上标?
excel单元格中的内容可以选中直接设置单元格格式,选中上下标即可。那么对于图标坐标轴是怎么加上标的呢?直接修改是没有办法的。在在数据的单元格内插入上标符号,这样在作图的时候上标就可以正常显示出来了可以看到第一个上标是采用的插入符号2,之后的都是采用的设置单元格上标,只有第一个可以正常显示。...
2019-06-10 11:16:47
10038
原创 寒武纪2019秋招软件岗编程题
回文数索引给定一个仅由小写字母组成的字符串。现在请找出一个位置,删掉那个字母之后,字符串变成回文。请放心总会有一个合法的解。如果给定的字符串已经是一个回文串,那么输出-1。输入描述:第一行包含T,测试数据的组数。后面跟有T行,每行包含一个字符串。输出描述:如果可以删去一个字母使它变成回文串,则输出任意一个满足条件的删去字母的位置(下标从0开始)。例如:bcc我们可以删掉位置0的b字符...
2019-06-03 15:34:55
889
原创 [每日leetcode]乘积最大子序列
给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解析最大乘积可以由正数正数和负数负数得到,因此,需要同时记录下最大值和最小值。状态定义:...
2019-05-23 16:17:43
242
原创 【每日leetcode】单词搜索、单词搜索II
单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, 返回...
2019-05-23 11:05:33
556
原创 【每日leetcode】实现Trie(前缀树)
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert(“apple”);trie.search(“apple”); // 返回 truetrie.search(“app”); // 返回 falsetrie.startsWith(“app”); ...
2019-05-22 21:15:25
282
原创 [每日leetcode]单词拆分、单词拆分II
单词拆分给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可...
2019-05-21 22:46:41
336
原创 [每日leetcode]分割回文串
分割回文串给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: “aab”输出:[[“aa”,“b”],[“a”,“a”,“b”]]class Solution {public: vector<vector<string>> partition(string s) { ve...
2019-05-19 23:22:01
153
原创 [每日leetcode]插入区间
给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例 1:输入: intervals = [[1,3],[6,9]], newInterval = [2,5]输出: [[1,5],[6,9]]示例 2:输入: intervals = [[1,2],[3,5],[6,7],[8,10],...
2019-05-10 23:25:20
115
原创 【每日leetcode】子域名访问计数
一个网站域名,如"discuss.leetcode.com",包含了多个子域名。作为顶级域名,常用的有"com",下一级则有"leetcode.com",最低的一级为"discuss.leetcode.com"。当我们访问域名"discuss.leetcode.com"时,也同时访问了其父域名"leetcode.com"以及顶级域名 “com”。给定一个带访问次数和域名的组合,要求分别计算每个域...
2019-05-08 22:18:39
145
原创 【每日leetcode】山脉数组的峰顶索引
我们把符合下列属性的数组 A 称作山脉:A.length >= 3存在 0 < i < A.length - 1 使得A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < … A[i-1] &l...
2019-05-08 21:17:36
154
原创 【每日leetcode】按奇偶数排序数组
给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示:1 <= A.length <= 50000 <= A[i] <= 5000cl...
2019-05-08 20:57:04
473
原创 [每日leetcode]增减字符串匹配
给定只含 “I”(增大)或 “D”(减小)的字符串 S ,令 N = S.length。返回 [0, 1, …, N] 的任意排列 A 使得对于所有 i = 0, …, N-1,都有:如果 S[i] == “I”,那么 A[i] < A[i+1]如果 S[i] == “D”,那么 A[i] > A[i+1]示例 1:输出:“IDID”输出:[0,4,1,3,2]示例 2:...
2019-05-08 20:51:11
133
原创 【每日leetcode】合并二叉树
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 1 ...
2019-05-08 20:30:04
116
原创 【每日leetcode】机器人能否返回原点
在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向...
2019-05-08 20:22:18
248
原创 【每日leetcode】唯一摩尔斯密码词
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–."...
2019-05-08 10:49:07
147
原创 【每日leetcode】有序数组的平方
给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]示例 2:输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= A.length <= 10000-10000 <= A[i] <= 10000A 已按...
2019-05-07 23:20:08
138
原创 [每日leetcode]翻转图像
给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0,0]]输...
2019-05-07 23:15:16
135
原创 [每日leetcode]二叉搜索树的范围和
给定二叉搜索树的根结点 root,返回 L 和 R(含)之间的所有结点的值的和。二叉搜索树保证具有唯一的值。示例 1:输入:root = [10,5,15,3,7,null,18], L = 7, R = 15输出:32示例 2:输入:root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10输出:23提示:树中的结点数量最多为 1000...
2019-05-07 23:04:02
273
原创 【每日leetcode】3的幂
给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false进阶:你能不使用循环或者递归来完成本题吗?思路:正常的思路是不停地去除以 3,看最后的迭代商是否为 1。这种思路的代码使用到了循环,逼格不够高。这里取巧的方法 用到了数论的知识:3 的幂次的质因子只有 3。题目要求输入的是 int 类型,正数范围...
2019-05-05 20:22:27
218
原创 【每日leetcode】滑动窗口算法总结
前言科普:什么是滑动窗口算法滑动问题包含一个滑动窗口,它是一个运行在一个大数组上的子列表,该数组是一个底层元素集合。假设有数组 [a b c d e f g h ],一个大小为 3 的 滑动窗口 在其上滑动,则有:[a b c] [b c d] [c d e] [d e f] [e f g] [f g h]一般情况下就是使用这个...
2019-05-05 20:01:44
8061
2
原创 判断一棵满二叉树是否为二叉搜索树
给定一棵满二叉树,判定该树是否为二叉搜索树,是的话打印True,不是的话打印False 说明: a. 二叉搜索树(Binary Search Tree),它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树。 ...
2019-04-30 15:27:10
799
原创 华为2019研发实习生笔试题
第二道本市有N条公交线路(1…N),分别对应票价pn,可以连通本市M(1…M)个地点,小明想从地点x换乘公交到地点y,请帮助他找到最省钱的换乘路线。地点个数M不超过100个,公交车线路个数N不超过100,票价取值区间为2-10元,公交车换乘有优惠,每次换乘可省1元。公交车只设始发站和终点站,中途不能下车;公交车始发站和终点站可以互换;不需要考虑公交车乘坐时间;用例会保证输入的格式正确性。输入...
2019-04-25 00:07:45
2106
2
转载 【每日leetcode】LRU缓存机制
反正我是做不出来,看看大佬写的,还挺好理解的。转载自:https://www.cnblogs.com/simplekinght/p/9573792.html运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否...
2019-04-23 17:06:35
216
原创 [每日leetcode]不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总...
2019-04-22 22:32:53
120
原创 【每日leetcode】Nim游戏
你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块...
2019-04-22 21:28:11
132
原创 [每日leetcode]求众数
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2方法一:排序,中间的那个数肯定是class Solution {public: int majorityElement(v...
2019-04-22 21:26:22
125
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅