自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 leetcode 每日打卡 用两个栈实现队列

题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTai

2020-06-30 14:59:30 229

原创 leetcode 探索 队列与栈 岛屿数量

题目给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3解释: 每座岛屿只能由水平和/或竖直方向上相邻的陆地连接而成。来源:力扣(LeetCode)链接:https://leetc

2020-06-30 09:29:11 186

原创 leetcode 1496 判断路径是否相交

题目给你一个字符串 path,其中 path[i] 的值可以是 ‘N’、‘S’、‘E’ 或者 ‘W’,分别表示向北、向南、向东、向西移动一个单位。机器人从二维平面上的原点 (0, 0) 处开始出发,按 path 所指示的路径行走。如果路径在任何位置上出现相交的情况,也就是走到之前已经走过的位置,请返回 True ;否则,返回 False 。示例1输入:path = “NES”输出:false解释:该路径没有在任何位置相交。提示:1 <= path.length <= 10^

2020-06-29 22:43:41 1010

原创 leetcode 215 数组中的第K个最大元素 Go实现

题目未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-largest-elem

2020-06-29 09:05:37 289

原创 leetcode 探索 队列和栈 设计循环队列

题目设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列为空,返回

2020-06-28 23:54:58 288

原创 leetcode 5499 检查数组对是否可以被K整除

题目给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n 。现在需要把数组恰好分成 n / 2 对,以使每对数字的和都能够被 k 整除。如果存在这样的分法,请返回 True ;否则,返回 False 。示例 1:输入:arr = [1,2,3,4,5,10,6,7,8,9], k = 5输出:true解释:划分后的数字对为 (1,9),(2,8),(3,7),(4,6) 以及 (5,10) 。来源:力扣(LeetCode)链接:https://leetcode-cn

2020-06-28 22:39:10 303

原创 leetcode 探索 链表 复制带随机指针的链表

题目给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的 深拷贝。我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:val:一个表示 Node.val 的整数。random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为 null 。示例1:输入:head = [[7,null],[13,0],[11,4],[10,2],[

2020-06-27 12:06:23 98

原创 leetcode 探索 链表 旋转链表

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

2020-06-27 11:22:01 93

原创 leetcode 探索 链表 扁平化多级双向链表

题目多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]输出:[1,2,3,7,8,11,12,9,10,4,5,6]解释:输入的多级列表如下图所示:扁平

2020-06-26 17:53:22 207

原创 leetcode 探索 链表 两数相加

题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists分析合并链表,此题比较简单,但要注意的事情有以下三点。该位上的和如果大于等于10的话,需要进位,那么需要将

2020-06-26 17:18:36 94

原创 leetcode 探索 链表 合并两个有序链表

题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists分析新建一个头节点,然后两两比较就好了,谁小谁链接上,只是需要判断边界条件。解法/** * Defini

2020-06-26 16:39:24 79

原创 leetcode 探索 链表 设计链表II双向链表

题目设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表

2020-06-26 16:07:57 209

原创 leetcode 面试题02.01 移除重复节点

题目编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1:输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3]示例2:输入:[1, 1, 1, 1, 2]输出:[1, 2]提示:链表长度在[0, 20000]范围内。链表元素在[0, 20000]范围内。进阶:如果不得使用临时缓冲区,该怎么解决?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicate-node-lcc

2020-06-26 11:52:18 169

原创 leetcode 探索 链表 回文链表

题目请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true分析这题有两个解法,一是新建一个数组,将每个链表元素,加入到数组中,然后通过双指针,一个指向首,一个指向尾,依次比较,空间复杂度O(N), 时间复杂度O(N+N/2)二是通过快慢指针,迅速定位到中心点,然后翻转中心点后的链表,然后将翻转后的链表与初始链表的从头开始比较。这是比较难以想到的解法。解法/** * Def

2020-06-26 11:00:46 75

原创 leetcode 探索 链表 奇偶链表

题目给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL应当保持奇数节点和偶数节点的相对顺序。链表的第一个节点视为奇数节点,第二个

2020-06-25 16:43:58 274

原创 leetcode 探索 链表 移除链表元素

题目删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5来源Leetcode: https://leetcode-cn.com/problems/remove-linked-list-elements/分析遇到这种经典的链表题的时候,我懵逼了,我不会。。。绕头脑,稍微不注意就会绕进去了,就不知道指针指哪里了。所以这题我要好好分析分析,好好

2020-06-25 15:40:37 137

原创 leetcode 探索 链表 反转链表

题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list分析反转链表,一遍循环,为了让2指向1,又不丢失下一个节点,就要让2的下一个节点先取出来存为temp,然后在

2020-06-25 11:56:08 104

原创 leetcode 探索 链表 删除链表的倒数第N个节点

题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list分析双

2020-06-24 23:19:53 122

原创 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 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [

2020-06-24 22:45:22 94

原创 leecode 探索 链表 环形链表 II

题目给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:链表中有一个环,其尾部连接到第二个节点。来源:力扣(LeetCode)链接:https://leet

2020-06-24 09:43:58 124

原创 leetcode 探索 链表 环形链表

题目给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle分析如果有环,那么用双指针,一个每次走两步,

2020-06-24 00:11:59 133

原创 leetcode 探索 链表 设计链表

题目设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表

2020-06-23 09:05:46 225

原创 leetcode 探索 数组和字符串 长度最小的子数组

题目给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。来源:力扣(LeetCode)链接:https://leetcode-cn.com/

2020-06-21 14:36:59 195

原创 leetcode 探索 数组和字符串 删除排序数组中的重复项

题目给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-d

2020-06-21 11:39:49 125

原创 leetcode 探索 数组和字符串 反转字符串中的单词 III

题目给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii分析反转每个单词的字符

2020-06-20 23:51:03 94

原创 leetcode 探索 数组和字符串 寻找旋转排序数组中的最小值

题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-a

2020-06-20 22:45:49 118

原创 leetcode 探索 数组和字符串 移动零

题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。分析:双指针,一个指针a指向当前的0,一个指针b指向不为0的。遇到不为0,就交换这俩a和b的上值,a指针前进,b指针也继续前进。直到b指针遇到下一个不为0的,继续交换。这过程中指针b一直移动。核心就是交换遇到的第一个不为0的值。这样就能把0移到最后了

2020-06-20 19:59:59 251

原创 leetcode 探索 数组和字符串 杨辉三角

题目:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/pascals-triangle分析:主要抓住两边都是1,而中间的数是上一层row[i][j-1] + row[i][j]之和,答案就出来了。

2020-06-20 18:00:20 103

原创 leetcode 探索 数组和字符串 561 数组拆分I

题目给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, 10000].数组中的元素范围在 [-10000, 10000].来源:力扣(LeetCode)链接:https://l

2020-06-20 17:33:32 98

原创 leetcode 探索 数组与字符串 485 最大连续1的个数

题目给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/max-consecutive-ones分析这题很简单的,遇到0就从新计数,并与上一次的最大和比较。解法func f

2020-06-20 16:09:32 141

原创 leetcode 探索 数组和字符串 移除元素

题目给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。想法由于是要原地移除,如果单纯的找到一个就把后面的元素

2020-06-20 13:13:52 156

原创 leetcode 探索 数组与字符串 167 两数之和II

题目给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 index1 = 1,

2020-06-20 12:01:47 107

原创 leetcode 6 最长回文子串

题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring分析我这脑子只能想出这种暴力解法了,其实还有中心扩散和动态规划。解法func longestP

2020-06-20 09:26:10 98

原创 leetcode 探索 数组和字符串 反转字符串

题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]来

2020-06-20 08:14:33 110

原创 leetcode 探索 数组和字符串 验证回文串

问题给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-palindrome分析话不多说,撸起袖子就是干,双指针解决问题,一个从头遍

2020-06-19 22:44:50 101

原创 记一次Go程序CPU占用100%的问题

我写的一个服务,有段时间CPU占用一直是100%。因为一直在开发环境,还没上线,今天终于有时间了就排查了一下。100%这种占用,一看就感觉是某个for循环导致的。首先,选择分析工具,Golang的性能分析工具pprof。在Gin这个框架中,需要通过注册才可以使用。方式if ok, _ := strconv.ParseBool(utils.GetEnv("DEVELOP_MODE")); ok { pprof.Register(router)}我们用了一个环境变量DEVELOP_MODE来控

2020-06-19 19:14:59 6371

原创 leetcode 探索 数组和字符串 字符串匹配基础1

字符串匹配基础匹配所针对的目标是主串S与模式串P。BF算法RK算法1. BF算法BF是Brute Force算法的简写,理解起来就是暴力算法。通过滑动主串窗口,依次与模式串P比较的一个过程,遇到第一个不匹配即退出。时间复杂度为O(N*M),其中N为主串S的长度,M为模式串P的长度。据说Java的IndexOf就是用的此法,简单符合KISS原则,且针对一般情况都是长主串,短字串的情况,比如N>>M,那么M可以忽略了。func rk(s, p string) int { n

2020-06-19 11:16:21 164

原创 leetcode 探索 数组和字符串 最长公共前缀

最长公共前缀题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-common-prefix

2020-06-18 22:40:13 92

手势字母A检测handGestureDetection

手势字母A检测handGestureDetection,opencv c++代码

2012-09-03

物联网智能家居发展分析

智能家居作为家庭信息化的实现方式,已成为社会信息化发展的重要组成部分,物联网因其巨大的应用前景,将是智能家居产业发展过程中一个比较现实的突破口,对智能家居产业的发展具有重大意义。文章分析了目前智能家居发展现状,给出了发展建议,为物联网智能家居产业的发展提供参考。

2012-09-03

智能家居市场分析及发展趋势

智能家居市场分析及发展趋势来源:中国安防行业网

2012-09-03

智能家居中视频监控系统设计

针对智能家居的远程监控问题,提出了一种基于ARM,Linux和计算机网络的视频监控系统,该系统以嵌入式Linux和嵌入式微控制器ARM 为核心平台,通过web服务器将USB摄像头采集的视频信号经过网络传输,完成对家居的远程视频监控任务。

2012-09-03

中国智能家居的现状及发展趋势

中国智能家居的现状和发展趋势,论述了智能家居的基本概念。介绍了智能家居在中国的发展情况。分析了阻碍智能家居发展的主要因素, 并指出了智能家居在中国的发展趋势。

2012-09-03

DIY无线天线大集合

这个主要讲的是天线,当然了 天线必然是无线的!哈哈,但是这讲的都是DIY的!想毕看后你也可以DIY了一下吧!快来吧

2010-09-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除