自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

柚子本心凉的博客

好好学习,天天向上。

  • 博客(53)
  • 收藏
  • 关注

原创 LeetCode 只出现一次的数字 java

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4class Solution { public int singleNumber(...

2019-03-06 21:51:58 251

原创 LeetCode 554. 砖墙

你的面前有一堵方形的、由多行砖块组成的砖墙。 这些砖块高度相同但是宽度不同。你现在要画一条自顶向下的、穿过最少砖块的垂线。砖墙由行的列表表示。 每一行都是一个代表从左至右每块砖的宽度的整数列表。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你需要找出怎样画才能使这条线穿过的砖块数量最少,并且返回穿过的砖块数量。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。 ...

2019-01-17 22:30:28 608

原创 LeetCode 455. 分发饼干

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值为正。一...

2019-01-16 22:29:37 237

原创 Leetcode 54. 螺旋矩阵 java

给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]...

2019-01-08 21:03:13 318

原创 LeetCode 35. 搜索插入位置 java实现

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], ...

2018-09-13 09:39:11 452

原创 LeetCode 240. 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 1...

2018-09-12 22:44:34 678

原创 111. 二叉树的最小深度 C++

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度  2./** * Definition for a binary tree n...

2018-09-11 21:55:38 473

原创 LeetCode 50. Pow(x, n) C++ 迭代实现

实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 10...

2018-09-06 19:33:00 632

原创 Leetcode 78. 子集

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3],  [1],  [2],  [1,2,3],  [1,3],  [2,3],  [1,2],  []]//////////////////////////////////////////////////////...

2018-07-10 22:24:55 505

原创 LeetCode 500. 键盘行

给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。示例1:输入: ["Hello", "Alaska", "Dad", "Peace"]输出: ["Alaska", "Dad"]注意:你可以重复使用键盘上同一字符。你可以假设输入的字符串将只包含字母。////////////////////////////////思路: 逐个遍历每个字符串中的字符是否在每

2018-07-10 15:30:23 244

原创 LeetCode 409. 最长回文串

给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。//////////////////////////////////////...

2018-07-08 15:41:01 133

原创 leetcode 136. 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4/////思路: 这题我的解法是运用哈希映射来解题 , 假若给定的整数数组中的元素 都和另外一个数组中的元素有一个映射关系,比如:...

2018-07-07 20:09:08 250

原创 Leetcoe 92. 反转链表 II

反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL//////////////////////////////////////////////////////////...

2018-07-05 13:35:45 188

原创 LeetCode 237. 删除链表中的节点

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4...

2018-07-05 12:27:13 283

原创 LeetCode 61. 旋转链表

给定一个链表,旋转链表,将链表每个节点向右移动 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-&

2018-07-04 22:45:33 177

原创 LeetCode 781. 森林中的兔子

森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例:输入: answers = [1, 1, 2]输出: 5解释:两只回答了 "1" 的兔子可能有相同的颜色,设为红色。之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。设回答了 "2" 的兔子为蓝色。此...

2018-06-06 21:44:37 750

原创 LeetCode 36. 有效的数独 C++&java

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:[ ["5","3",".",".","7",".",&quot

2018-06-04 22:17:41 722

原创 LeetCode 754. 到达终点数字 C++&java

在一根无限长的数轴上,你站在0的位置。终点在target的位置。每次你可以选择向左或向右移动。第 n 次移动(从 1 开始),可以走 n 步。返回到达终点需要的最小移动次数。示例 1:输入: target = 3输出: 2解释:第一次移动,从 0 到 1 。第二次移动,从 1 到 3 。示例 2:输入: target = 2输出: 3解释:第一次移动,从 0 到 1 。第二次移动...

2018-06-03 19:43:23 1945 2

原创 LeetCode 292. Nim游戏 c++&java

你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;  因为无论你拿走 1 块、2 块 还是 3 块石头,最后...

2018-06-02 15:05:20 452

原创 LeetCode 150. 逆波兰表达式求值

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

2018-06-01 21:57:26 1847

原创 LeetCode 203. 删除链表中的节点 C++&java

删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5C++/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *...

2018-05-31 21:53:51 753

原创 LeetCode 198. 打家劫舍 C++&java

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 ...

2018-05-28 16:12:46 913

原创 LeetCode 70. 爬楼梯 C++&java

假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 步 + 1 步2. 2 步示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 步 + 1 步 + 1 步2. 1 步 + 2 步3. ...

2018-05-27 22:21:32 999

原创 LeetCode 189. 旋转数组 C++& java

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = ...

2018-05-26 19:40:34 722 1

原创 LeetCode 206. 反转链表 C++& java

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?/** * Definition for singly-linked list. * struct ListNode { *     int val; *    ...

2018-05-25 22:47:20 221

原创 LeetCode 加一 C++&java

给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。class Solu...

2018-05-25 20:06:12 536

原创 LeetCode 从排序数组中删除重复项

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

2018-05-24 16:43:18 131

原创 LeetCode 20. 有效的括号

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

2018-05-24 10:53:55 193

原创 LeetCode 7. 反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21 注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。// 这题的难点在于如何判断整数溢出!//这里采用两个正整数相加...

2018-05-23 19:11:20 143

原创 LeetCode 9. 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。// 思路利用栈和队列...

2018-05-23 16:26:52 150

原创 哈夫曼树与哈夫曼编码

【例】 将百分制的成绩转换为5分制的成绩为一个判定树 ;要求 带权路径最小哈夫曼树的构造方法每次把权值最小的两个二叉树合并。 利用堆效率比较高 特点:没有度为1的结点n个叶子结点的哈夫曼树共有2n-1个结点 n0: 叶结点总数 n1:只有一个儿子的结点总数n2:有2个儿子的结点总数n2 = n0 -1哈夫曼任意非叶子结点的左右子树互换后仍是哈夫曼树 避免二义性 :前缀码...

2018-05-22 22:03:56 280

原创 LeetCode 102. 二叉树的层次遍历

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]/** * Definition for a binary tree node. * str...

2018-05-22 21:03:26 1014

原创 LeetCode 345. 反转字符串中的元音字母

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:给定 s = "hello", 返回 "holle".示例 2:给定 s = "leetcode", 返回 "leotcede".注意:元音字母不包括 "y".//思路  :把所有的元音字母都入栈,然后第二次遍历的时候,每次取栈顶元素替换当前元音字母class Solution {public:    //stack<cha..

2018-05-15 20:20:40 631

原创 LeetCode 19. 删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?//思路 用两个指针 相隔n个节点 ,然后一起遍历链表,当一个节点到达链尾的时候,另一个节点正...

2018-05-14 15:29:13 102

原创 幸福 happiness

什么是幸福? 这似乎是一个老生常谈的话题了What is happiness? It seems to be an old conversation topic.小时候爱吃零食,吃糖果,那时候就想如果我是糖果店老板的话,我就有吃不完的糖果,那应该就是幸福吧。 When I was little, I liked eating snacks and candy, and then ...

2018-05-13 21:19:03 297

原创 串口通讯隔离利用光耦隔离的问题

最近两天遇到一个很奇怪的问题,利用STM32串口给下位机STM8实现通讯的问题。其中 串口使用了光耦进行隔离。然而 经过隔离后的数据却出现了明显的问题。久思不得其解 。后来才知道原来是串口通信的波特率给的比较高115200 ,光耦转换速率不够。改波特率9600 。成功传输...

2018-05-11 21:53:06 13888 1

原创 LeetCode 1. 两数之和

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]class Solution {public:    vector<int> re ;    ...

2018-05-10 22:25:15 100

原创 LeetCode 94. 二叉树的中序遍历

给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left...

2018-05-09 22:16:13 781

原创 LeetCode 141. 环形链表

给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?//思路://设置快慢指针 若有换的话 ,在快指针到达链表尾之前,快指针一定会再次追上慢指针/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x)...

2018-05-08 22:48:39 109

原创 LeetCode 211. 添加与搜索单词 - 数据结构设计

设计一个支持以下两种操作的数据结构:void addWord(word)bool search(word)search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z 。 . 可以表示任何一个字母。示例:addWord("bad")addWord("dad")addWord("mad")search("pad") -> falsesearch("ba...

2018-05-08 21:35:19 1094

空空如也

空空如也

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

TA关注的人

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