java
求与修
落霞与孤鹜齐飞 秋水共长天一色
展开
-
leetcode-java 旋转图像
旋转图像题目描述:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2]...原创 2019-11-29 22:08:55 · 226 阅读 · 0 评论 -
leetcode-java 回文链表
回文链表题目描述:leetcode 234.回文链表请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?问题分析:回文的思想就是前后比较,找出不同返回false,不然返回true。回文链表的...原创 2019-11-28 19:34:41 · 226 阅读 · 0 评论 -
leetcode-java 反转链表
反转链表反转链表 I题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?问题分析:随着指针遍历的同时完成转向代码展示(已验证)://206. 反转链表class Solut...原创 2019-11-28 19:31:09 · 280 阅读 · 0 评论 -
leetcode-java 删除链表的倒数第N个节点
删除链表的倒数第N个节点删除链表中的节点题目描述:237.删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为:4->5->1->9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定...原创 2019-11-20 21:04:55 · 541 阅读 · 0 评论 -
leetcode-java 删除排序数组的重复项
删除排序数组的重复项删除排序数组的重复项 I题目描述:leetcode 26.给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个...原创 2019-11-17 11:48:09 · 308 阅读 · 0 评论 -
leetcode-java 删除排序链表中的重复元素II
删除排序链表中的重复元素II删除排序链表中的重复元素 I题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3问题...原创 2019-11-15 14:35:07 · 688 阅读 · 0 评论 -
leetcode-java字符串转整数(atoi)
字符串转整数(atoi)题目描述:leetcode 8.字符串转换整数(中等)请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合...原创 2019-11-11 19:47:25 · 252 阅读 · 0 评论 -
leetcode 字符串中的第一个唯一字符
字符串中的第一个唯一字符题目描述:leetcode 387.字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2. 注意事项:您可以假定该字符串只包含小写字母。问题分析:返回唯一字符的索引,首先想到的是从 indexO...原创 2019-11-10 11:26:45 · 173 阅读 · 0 评论 -
leetcode-java 反转字符串
反转字符串反转字符串 I题目描述:leetcode 344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","...原创 2019-11-10 00:54:41 · 682 阅读 · 0 评论 -
leetcode-java 有效的数独
有效的数独题目描述:leetcode 36.有效的数独 * 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 表示。示例 ...原创 2019-11-04 23:04:56 · 492 阅读 · 0 评论 -
leetcode 两个数组的交集II
两个数组的交集 II题目描述:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输...原创 2019-11-01 19:49:19 · 173 阅读 · 0 评论 -
leetcode-java 移动零
移动零题目描述: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。问题分析:如何能更快更好的进行数据交换是解决这道题的核心,将非零数据从前到后赋值给数组,将数组后续的空间数据赋值为零代码展...原创 2019-10-29 18:13:38 · 217 阅读 · 0 评论 -
leetcode-java 验证回文串
验证回文串题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"问题分析:灵活使用 字符串方法 和 StringBuilder 对象方法 1,将...原创 2019-06-30 11:48:54 · 303 阅读 · 0 评论 -
leetcode-java 分割回文串
分割回文串题目描述:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: "aab"输出:[ ["aa","b"], ["a","a","b"]]问题分析:步骤如下: 1,设置一个全局的 List 对象,res,用来返回最后的结果,将符合条件的分割方案,加入其中 static List<List...原创 2019-07-12 15:30:24 · 447 阅读 · 0 评论 -
leetcode-java 买卖股票的最佳时机 IV
买卖股票的最佳时机 IV同类题目解法与通用框架买卖股票的最佳时机买卖股票的最佳时机 II买卖股票的最佳时机 III最佳买卖股票时机含冷冻期买卖股票的最佳时机含手续费买卖股票的最佳时机 通用框架题目描述:给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意: 你不能同时参与多笔交易(你必...原创 2019-07-16 17:45:03 · 298 阅读 · 0 评论 -
leetcode-java 两数之和 II --输入有序数组
两数之和 II --输入有序数组题目描述:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: n...原创 2019-07-18 12:05:42 · 215 阅读 · 0 评论 -
数组中出现数字次数 的问题总结
数组中出现数字次数 的问题总结只出现一次的数字只出现一次的数字 II只出现一次的数字 III问题分析:将问题分成两类,一类是 出现特定次数, 另一类是 出现多次,后一种包括前一种其中可能包含 有多个数字出现一次 或者 多次,求解这多个数字第一类 static int singlenumber(int[] nums) { int temp =0; if(nums.lengt...原创 2019-07-11 13:26:12 · 200 阅读 · 0 评论 -
leetcode-java 只出现一次的数字 II
只出现一次的数字 II题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99问题分析:只出现一次的数字 I比着上边的第一题,...原创 2019-07-11 12:55:33 · 490 阅读 · 0 评论 -
leetcode-java 最小栈
最小栈题目描述:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。pop() -- 删除栈顶的元素。top() -- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minSta...原创 2019-07-15 11:27:58 · 202 阅读 · 0 评论 -
leetcode-java 相交链表
相交链表题目描述:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表: 在节点 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输入解释:...原创 2019-07-21 16:49:17 · 322 阅读 · 0 评论 -
leetcode-java 组合总和
组合求和题目描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。 示例 1:输入: candidates = [2,3,6,7], target =...原创 2019-08-04 12:46:49 · 243 阅读 · 0 评论 -
leetcode-java 阶乘后的零
阶乘后的零问题描述:给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。题目分析:从根源上找到尾数中零出现的原因,有 一个 5 就会有一个0,25 相当于 两个 5....原创 2019-07-22 21:16:32 · 213 阅读 · 0 评论 -
leetcode-java 最大数
最大数题目描述:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。问题分析:自定义一个排序方法,比较 a1+a2 与 a2+a1 的大小将排序后字符数组拼接在一起,然后 return...原创 2019-07-28 16:29:36 · 366 阅读 · 0 评论 -
leetcode-java 组合总和 III
组合总和 III题目描述:组合总和 I组合总和 II找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。 示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3...原创 2019-08-19 10:40:52 · 345 阅读 · 0 评论 -
leetcode-java 组合总和II
组合总和 II题目描述:40.组合总和 II给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。 示例 1:输入: candidates = [10,1,2,7,6...原创 2019-08-07 20:05:54 · 261 阅读 · 0 评论 -
leetcode-java 组合总和 IV
组合总和 IV题目描述:给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。示例:nums = [1, 2, 3]target = 4所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。因此输出为 7。进阶:...原创 2019-08-21 16:31:41 · 202 阅读 · 0 评论 -
leetcode-java 树的路径总和 II
树的路径总和 II题目描述:树的路径总和 I113.路径总和 II给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / ...原创 2019-09-01 22:36:51 · 254 阅读 · 0 评论 -
Java 基础知识随笔1
1,语法错误 运行时错误 逻辑错误2,类名,方法名,常量,变量名的命名习惯常量中所有名字大写,类名中每个单词的首字母大写,实用小写字母命名变量和方法3,回文数4,使用Math.random()方法显示一个随机的大写字母(65-90)int num = (int)(Math.random()*26+65);(char)(num);5,编写程序中100-1000之间所有能被5 或 6整...原创 2019-10-01 17:52:52 · 1318 阅读 · 0 评论 -
leetcode-java 二进制求和
二进制求和题目描述:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"问题分析: 关于这个题,有两种大的解题思路: 1,作为使用 java 解答的算法题,可以直接使用...原创 2019-06-19 15:34:37 · 358 阅读 · 0 评论 -
leetcode-java 只出现一次的数字
只出现一次的数字题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4问题分析:只出现一次的数字,这个基础是建立在 其余每个元素均出现两次的基础...原创 2019-07-10 12:36:40 · 978 阅读 · 0 评论 -
杨辉三角 II
杨辉三角 II题目描述:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]问题分析:杨辉三角的输出打印前面已经写过,这次等于是在之前的基础上输出其中的最后一个列元素。两种方法:第一种: 直接构造一个杨辉三角,然后添加输出即可 第二种: 获取杨辉三角的指定行...原创 2019-06-29 13:49:02 · 318 阅读 · 0 评论 -
leetcode-java 爬楼梯
爬楼梯题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶问题分析:每次爬 1 或 2 个台阶,把爬前几个台阶的方...原创 2019-06-21 10:37:38 · 269 阅读 · 0 评论 -
java中栈的创建和使用
栈的创建和使用JAVA Stack类:栈是Vector的一个子类,它实现了一个标准的后进先出的栈,栈本身最重要的就是 push 和 pop.堆栈只定义了默认构造函数,用来创建一个空栈。堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法Stack()除了由Vector定义的所有方法,自己也定义了一些方法:序号 方法描述1 boolean empty() 测试堆栈是否为...原创 2019-06-11 11:49:23 · 60444 阅读 · 2 评论 -
java 文件的写入和读取
java文件的写入和读取内容描述:使用 Scanner 类从文件中读取文本數据, 使用 PrintWriter 类向文本文件写入数据文件的写入:向文本文件写入的UML图:代码展示:// 文件的创建和数据写入package java_testquestions;//import java.io.IOException;import java.io.*;public cla...原创 2019-06-04 22:35:23 · 2935 阅读 · 0 评论 -
动态规划 最大子序列
最大子序列问题描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。问题分析:其实这道题是典型的动态规划问题...原创 2019-06-16 13:56:45 · 1929 阅读 · 1 评论 -
leetcode-java x的平方根
x的平方根题目描述:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。题目分析:只要找出平方就行,两种...原创 2019-06-20 10:14:42 · 323 阅读 · 0 评论 -
java中链表的创建和使用
链表的创建和使用1,创建一个链表:a,定义一个class类 ListNode 如下://创建一个链表的类class ListNode{ int val; //数值 data ListNode next; // 结点 node ListNode(int x){ //可以定义一个有参构造方法,也可以定义一个无参构造方法 val = x; } // 添加新的结点 public...原创 2019-06-10 12:25:34 · 40628 阅读 · 4 评论 -
java 三角形类 Triangle
三角形类Triangle设计一个名为 Triangle 的类来扩展 GeometricObject 类。该类包括: 1,三个名为 side1,side2,side3 的double 数据域表示这个三角形的三条边,它们的默认值是1.0. 2,一个无参构造方法创建的默认的三角形 3,一个能创建带指定side1,side2,side3的三角形的构造方法 4,所有三个数据域的访问器方法 5,一...原创 2019-06-03 15:14:53 · 15878 阅读 · 0 评论 -
数组-旋转数组
旋转数组题目介绍:给定一个数组,将数组中的元素向右移动 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,...原创 2019-06-14 12:58:26 · 1115 阅读 · 0 评论 -
字符串相关操作使用-最长公共前缀
最长公共前缀题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。题目分析:公共前缀问题...原创 2019-06-08 14:17:50 · 705 阅读 · 0 评论