- 博客(36)
- 收藏
- 关注
原创 16. 最接近的三数之和
16. 最接近的三数之和题目示例分析Code(Java)题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum-closest示例例如,给定数...
2019-07-20 11:49:41
311
转载 LeetCode目录
LeetCode目录1. 两数之和2. 两数相加3. 无重复字符的最长子串4. 寻找两个有序数组的中位数6. Z字形变换7. 反转整数8. 字符串转换整数9. 回文数12. 整数转罗马数字13. 罗马数字转整数14. 最长公共前缀20. 有效的括号21. 合并两个有序链表74. 搜索二维矩阵88. 合并两个有序数组136. 只出现一次的数字319. 灯泡开关1. 两数之和https://blo...
2019-07-19 22:23:37
741
原创 18. 四数之和
18. 四数之和题目示例分析Code(Java)题目给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。来源:力扣(LeetCode)链接:https://leetcode-cn....
2019-07-19 22:23:01
261
原创 15. 三数之和
15. 三数之和题目描述示例Code(Java)题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],...
2019-07-19 22:11:19
223
原创 61. 旋转链表
61. 旋转链表题目描述示例示例1示例2分析Code(Java)题目描述给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rotate-list示例示例1输入: 1->2->3->4->5->NULL, k = 2输出: ...
2019-06-17 20:54:42
154
原创 205. 同构字符串
205. 同构字符串题目示例示例1示例2示例3分析Code(Java)题目给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。来源:力扣(LeetCode)链接:https://leetcode-cn.com/...
2019-06-17 20:41:19
215
原创 51. N皇后
51. N皇后题目描述示例分析Code(Java)题目描述n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例输入: 4输出: [ ["...
2019-06-02 17:53:58
301
原创 31. 下一个排列
31. 下一个排列题目描述示例分析Code(Java)题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。示例以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → ...
2019-05-07 22:10:15
291
原创 34. 在排序数组中查找元素的第一个和最后一个位置
34. 在排序数组中查找元素的第一个和最后一个位置题目描述示例示例1示例2分析Code(Java)第一种:暴力第二种:二分法题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例示例1输入: nums = [5,7,...
2019-04-30 22:30:13
318
原创 17. 电话号码的字母组合
17. 电话号码的字母组合题目描述示例分析实现代码题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].分析实现代码...
2019-04-25 20:42:00
370
原创 19. 删除链表的倒数第N个节点
19. 删除链表的倒数第N个节点题目描述示例示例1示例2题目分析代码实现题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例示例1给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.示例2链表只有一个结点: 1, n = 1.当删除了倒数...
2019-04-23 20:22:56
229
原创 3.无重复字符的最长子串
03.无重复字符的最长子串题目描述示例示例1示例2示例3分析代码实现题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例示例1输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例3输入: ...
2019-04-21 22:48:27
223
原创 8. 字符串转换整数
8. 字符串转换整数 题目示例示例1示例2示例3示例4示例5分析实现代码题目请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形...
2019-04-20 20:37:07
668
原创 319. 灯泡开关
319. 灯泡开关题目示例分析实现代码题目初始时有 n 个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第 i 轮,每 i 个灯泡切换一次开关。 对于第 n 轮,你只切换最后一个灯泡的开关。 找出 n 轮后有多少个亮着的灯泡。示例输入: 3输出: 1 解释: 初始时, 灯泡状态 [...
2019-04-17 18:31:50
274
原创 136. 只出现一次的数字
136. 只出现一次的数字题目示例示例1示例2分析实现代码题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例示例1输入: [2,2,1]输出: 1示例2输入: [4,1,2,1,2]输出: 4分析异或运算符的应用:运算特点:相同为0,不同为1交换律:a ^ b ^ c <=> a ^ c ^ ...
2019-04-15 11:26:05
225
原创 88. 合并两个有序数组
88. 合并两个有序数组题目示例分析实现代码题目给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例输入:nums1 = [1,2,...
2019-04-15 11:11:42
309
原创 21. 合并两个有序链表
21. 合并两个有序链表题目示例分析实现代码题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:1->2->4, 1->3->4输出:1->1->2->3->4->4分析先确定合并链表第一个节点 ,在循环中同时遍历两个链表,将后面其余节点逐次比较,依大小次序连接到首节点之后,...
2019-04-15 10:57:04
186
原创 74. 搜索二维矩阵
搜索二维矩阵题目示例示例1示例2分析代码题目编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例示例1输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3...
2019-04-14 20:26:07
288
原创 20. 有效的括号
有效的括号题目示例示例1示例2示例3示例4示例5分析代码题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例示例1输入: "()"输出: true示例2输入: "()[]{}"输出: true示例3输入...
2018-12-20 21:19:45
1580
原创 Java基础小总结
一些基本语法1. 我的第一个HelloWorld程序:public class HelloWorld{ // HelloWorld类 public static void main(String[] args){ // 主方法 System.out.println("HELLO WORLD !"); // 输出语句 }}这段代码的输出:H...
2018-12-03 20:15:34
117
原创 14. 最长公共前缀
最长公共前缀题目示例示例1示例2代码题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例示例1输入: ["flower","flow","flight"]输出: "fl"示例2输入: ["dog","racecar"
2018-12-03 20:12:00
307
原创 4. 寻找两个有序数组的中位数
寻找两个有序数组的中位数题目示例示例1示例2分析代码题目给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例示例1nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例2nums1 = [1, ...
2018-11-29 19:41:17
326
原创 12. 整数转罗马数字
整数转罗马数字题目示例示例1示例2示例3示例4示例5代码题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 100...
2018-11-22 20:21:08
568
原创 13. 罗马数字转整数
罗马数字转整数题目示例示例1示例2示例3示例4示例5题目分析题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1...
2018-11-18 17:18:30
669
原创 6. Z字形变换
Z字形变换题目示例示例1示例2代码题目将字符串 “PAYPALISHIRING” 以Z字形排列成给定的行数:P A H NA P L S I I GY I R之后从左往右,逐行读取字符:“PAHNAPLSIIGYIR”实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例示例1输入: s ...
2018-11-11 17:24:33
319
原创 7. 反转整数
反转整数题目示例示例1示例2示例3注意题目分析代码实现题目给定一个 32 位有符号整数,将整数中的数字进行反转。示例示例1输入: 123输出: 321示例2输入: -123输出: -321示例3输入: 120输出: 21注意假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。题目分...
2018-11-04 13:08:33
326
原创 2. 两数相加
两数相加题目示例题目分析代码题目给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例输入:(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4)输出:7 -&gt; 0 -&gt; 8原因:342 + 465 = 807题目分析
2018-10-28 23:09:19
274
原创 1. 两数之和
两数之和题目示例解法方法1方法2代码实现方法1方法2题目给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解法方法1直接双重循环遍历数组,查找和值...
2018-10-21 18:07:55
8234
原创 (Java)String类的方法整合
String类的方法构造方法构造方法public String():空参构造。public String(String original):把一个字符串常量转成字符串。public String(char[] value):把字符数组转成字符串。public String(char[] value, int offset, int count):把字符数组一部分转成字符串。publi...
2018-10-20 22:55:35
613
原创 找出数组中只出现了一次的数字(Java)
找出数组中只出现了一次的数字题目题目分析方法1方法2题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个 元素均出现两次。找出那个只出现了一次的元素。示例示例1:输入:[2,2,1] 输出:1示例2:输入:[4,1,2,1,2] 输出:4题目分析注意输入格式,在主方法中不能直接得到数组,应先定义字符串变量接收键盘输入,在使用String类的几种方法得到这个整数数组...
2018-10-20 14:25:26
15376
3
原创 封装,继承和多态
Java面向对象语言的特征:封装,继承,多态封装封装的好处:提高了代码的复用性 隐藏了实现细节,还要对外提供可以访问的方式,便于调用者的使用,这也是封装的概念 提高了安全性方法就是 一个基本封装体,类也是一个封装体private 关键字:private (私有) 属于成员修饰符,不能修饰局部变量,被private修饰的成员,只能在自己的本类中使用作用:提高安全性:让外面的...
2018-07-29 19:59:19
163
原创 链表的基本操作
单链表的创建节点创建:我们假设要创建的链表的数据域用来存储学生信息,即姓名,学号和成绩:typedef struct student{ char name[20]; int num,score; struct student *next; //指向下一个节点的指针}stu;接下来用简单的尾插法(即新增节点在尾部插入)创建链表:#include <stdio.h>#i...
2018-06-16 01:11:24
848
原创 c语言简单的代码优化
C语言代码的简单优化这里介绍的优化主要是让代码看起来更简洁明了先看几个简单的例子:<1>.输出 int 型数组a的元素个数printf("%d\n",_________);这里怎么填对我们来说非常简单了,我们一般用的32位机,所以直接写 sizeof(a)/4 就可以,开始这样代码就只适用于32位机,就降低了代码的移植性,所以可以改为 sizeof(a)/sizeof(int) ,让系...
2018-06-01 13:47:52
3692
原创 C语言用指针做函数参数
今天用两个简单的例子理一理C语言中指针做函数参数时的情况:交换px,py的指向/*用函数和指针交换px,py的指向*/#include <stdio.h>void exchange(int **p1,int **p2)/*函数无返回值,两个二级指针作为形参,存实参指针的地址,通过地址改变其指向单元即实参值,而实参是指针的地址,从而改变实参指针的指向*/{ int *pt; pt=*p1...
2018-05-25 14:59:16
614
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人