Java
文章平均质量分 55
Irving_zhu
这个作者很懒,什么都没留下…
展开
-
基础总结----Java 面向对象的三大特性
Java 面向对象的三大特性1.封装封装的主要目的:是为了保护信息。将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。优点1.阻止在外部定义的代码随意访问内部代码和数据。2.隐藏细节信息,一些不需要程序员修改和使用的信息。比如取款机中的键盘,用户只需要只要按哪个键实现哪个操作就可以,不需要知道内部是如何运行的,3.建立系统的松耦合关系,提高系统的独立性。当一个系统的实现方式发生变化时,只要它的接口不变,就不会影响其他系统的使用。例如 U 盘,原创 2021-07-11 23:39:55 · 228 阅读 · 0 评论 -
链式编程
使用 @Builderimport lombok.Builder;//链式创建对象 User user = User.builder().id(1L).name("张三").age(18).builder(); System.out.println(user); //获取name的值,以前是getName() System.out.println(user.name); lombok 实现 builder模式的链式bean可以参考:ht.原创 2021-01-26 19:03:02 · 152 阅读 · 0 评论 -
替换空格--长度or容量设置
替换空格–长度or容量 int len2 = str.length() + count * 2; StringBuffer rst2 = new StringBuffer(); rst2.setLength(len2);分析StringBuilder 长度设置的时候需要用setLength。不能把length放到new的时候的括号里面。括号里面的是capacity。StringBuffer s = new StringBuffer(40);原创 2020-12-07 17:11:26 · 117 阅读 · 0 评论 -
剑指offer4:重建二叉树
重建二叉树1.题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。2. 思路这道题其实很简单,思路比较清晰。根据前序和中序构建。1.在前序中确定根。参照物。2.在中序中确定迭代的位置。以根划分为左右...原创 2020-03-11 22:05:52 · 110 阅读 · 0 评论 -
剑指offer之:1-3总结(二维数组中的查找;替换空格;从头到尾打印列表)
剑指offer回顾总结本文重新回顾剑指offer的题目,给出思路,并对易错点进行总结记录。1. 题目1)二维数组的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。2)替换空格请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,...原创 2020-03-09 18:33:29 · 182 阅读 · 0 评论 -
138. Copy List with Random Pointer
138. Copy List with Random Pointer题目给定一个链表,每个结点包含一个额外的随机指针,可以指向列表中的任意结点或者指向null。 深拷贝这个链表。代码块/** * Definition for singly-linked list with a random pointer. * class RandomListNode { * ...原创 2018-05-28 17:01:07 · 107 阅读 · 0 评论 -
143. Reorder List
143. Reorder List题目给出一个单链表L:L0→L1→…→Ln-1→Ln, 重排为:L0→Ln→L1→Ln-1→L2→Ln-2→… 例1: 给出 1->2->3->4, 重排为: 1->4->2->3.例2: 给出 1->2->3->4->5, 重排为: 1->5->2->4->3原创 2018-05-24 15:09:36 · 123 阅读 · 0 评论 -
8. String to Integer (atoi)
8. String to Integer (atoi)题目将字符串转换为整数。1.首先将遇到的空格舍弃,直到遇到首个非空字符。 2.然后,选择正负号,将字符串翻译成数值。 字符串可以包含构成整数的字符之后的其他字符,这些字符被忽略,对函数没有影响。 Input: “4193 with words” Output: 41933.如果str中的非空字符的第一个序列不是一个有效的...原创 2018-06-12 11:39:19 · 172 阅读 · 0 评论 -
125. Valid Palindrome
125. Valid Palindrome题目给出一个字符串,判断它是否是回文,只考虑字母和数字(alphanumeric),其他的忽略。注意:关于本题,我们定义空字符串为有效回文。例1: 输入: “A man, a plan, a canal: Panama” 输出: true例2: 输入: “race a car” 输出: false代码块public ...原创 2018-05-30 17:35:07 · 121 阅读 · 0 评论 -
142. Linked List Cycle II
142. Linked List Cycle II题目给出一个链表,如果成环,则返回环开始的结点;如果不成环,返回null。代码块/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) {...原创 2018-05-22 17:19:38 · 123 阅读 · 0 评论 -
141. Linked List Cycle
141. Linked List Cycle题目给出一个链表,判断它是否成环。 不要使用额外空间。代码块/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val...原创 2018-05-21 11:32:31 · 123 阅读 · 0 评论 -
25. Reverse Nodes in k-Group
25. Reverse Nodes in k-Group题目给出一个链表,每次翻转链表的K个结点,返回修改后的链表。 k是正整数,并且小于等于链表长度。如果结点的数目不是k的倍数,最后剩下的不到K个结点保持原样。 比如:给出链表: 1->2->3->4->5当 k = 2, 你应该返回:2->1->4->3->5当 k = 3,你应该返回: 3->2->1->4->5注意: 空间复杂度为O(1原创 2018-05-07 10:11:35 · 117 阅读 · 0 评论 -
24. Swap Nodes in Pairs
24. Swap Nodes in Pairs题目给出一个链表,交换每两个相邻的结点,并返回它的头结点。 比如: 给出 1->2->3->4, 你应该返回 2->1->4->3. 注意: 你的算法应该只用常数额外空间。 你可能并不修改列表结点的值,仅改变节点本身。代码块/** * Definition for singly...原创 2018-05-04 15:34:55 · 198 阅读 · 0 评论 -
19. Remove Nth Node From End of List
19 Remove Nth Node From End of List题目给出一个链表,移除倒数第n个结点,并返回head。 例如: 给出链表: 1->2->3->4->5, 以及 n = 2. 移除倒数第2个结点,链表变成了 1->2->3->5.代码块/** * Definition for singly-linked list. * public class ListNode {原创 2018-04-26 11:14:29 · 109 阅读 · 0 评论 -
61.Rotate List
题目给出一个链表,将链表旋转到右边的第k个位置,其中k是非负的。例1: 输入: 1->2->3->4->5->NULL, k = 2 输出:4->5->1->2->3->NULL例2: 输入: 0->1->2->NULL, k = 4 输出:2->0->1->NULL 解释 : rotate 1 steps to the right: 2->0->1->NULL rotate 2 st原创 2018-04-19 16:12:37 · 212 阅读 · 0 评论 -
28. Implement strStr()
28. Implement strStr()题目实现strStr()。查找子字符串,如果找到,返回第一次出现的索引,如果不是子字符串返回-1。 例 1: 输入: haystack = “hello”, needle = “ll” 输出: 2例 2: 输入: haystack = “aaaaa”, needle = “bba” 输出: -1 说明:如果needle是空的话,返...原创 2018-05-31 16:45:37 · 159 阅读 · 0 评论 -
67.Add Binary
67. Add Binary题目给出两个二进制字符串,返回他们的和(也是一个二进制字符串)。 输入字符串为非空,并且只包含字符1或者0。 例1: Input: a = “11”, b = “1” Output: “100”例2: Input: a = “1010”, b = “1011” Output: “10101”代码块class Solution { ...原创 2018-06-25 16:27:33 · 143 阅读 · 0 评论 -
5. Longest Palindromic Substring
5. Longest Palindromic Substring代码块给出一个字符串s,找出s中的最长回文子字符串。你可以假定最大长度为1000。 例1: Input: “babad” Output: “bab” Note: “aba” is also a valid answer. 例2: Input: “cbbd” Output: “bb”代码块cla...原创 2018-06-26 11:37:10 · 121 阅读 · 0 评论 -
剑指offer之:2替换空格
1.题目请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。2. 思路分析1.首先统计字符串中的空格数2.得到新的字符串的长度3.从后向前来进行替换3.代码块public class Solution { public String replaceSpace(String...原创 2019-08-05 17:18:36 · 115 阅读 · 0 评论 -
重建二叉树(剑指offer第7题)以及树的四种遍历
重建二叉树以及三种递归遍历重建二叉树(剑指offer第7题)根据前序+中序或者后序+中序遍历可以唯一确定一棵二叉树。三种遍历方式(以根分类)前序遍历:先访问根节点,再访问左子节点,最后访问右子节点。中序遍历:先访问左子节点,再访问根节点,最后访问右子节点。后续遍历:先访问左子节点,再访问右子节点,最后访问根节点。代码实现import java.util.ArrayList;i...原创 2019-04-07 14:20:05 · 120 阅读 · 0 评论 -
剑指offer之:51数组中的逆序对
剑指offer之:51数组中的逆序对题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007。例如:数组{7,5,6,4}一共存在5个逆序对,分别是(7,6)(7,5)(7,4)(6,4)和(5,4) 。思路解析:1、顺序扫描时间复...原创 2019-03-19 12:07:19 · 148 阅读 · 0 评论 -
剑指offer之:40最小的k个数
剑指offer之40:最小的k个数题目描述:输入n个整数,找出其中最小的k个数。例如,输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。解法一:把输入的n个整数进行排序,排序后位于前面的k个数就是最小的k个数。时间复杂度O(nlogn)(快排)。此方法只适用于我们可以修改输入的数组时。基于Partition。解法二:不能修改输入的数组时,我们可以是用最大堆...原创 2019-02-27 14:14:25 · 179 阅读 · 0 评论 -
剑指offer之43:1~n整数中1出现的次数
https://www.cnblogs.com/xuanxufeng/p/6854105.html原创 2019-03-01 16:21:38 · 128 阅读 · 0 评论 -
剑指offer之:42连续子数组的最大和
42.连续子数组的最大和题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个...原创 2019-02-28 11:40:43 · 109 阅读 · 0 评论 -
12. Integer to Roman
12. Integer to Roman题目这道题是13题 的逆变换。 例1: Input: 3 Output: “III”例2: Input: 4 Output: “IV”例3: Input: 9 Output: “IX”例4: Input: 58 Output: “LVIII” Explanation: C = 100, L = 50, XXX = ...原创 2018-09-04 22:42:53 · 105 阅读 · 0 评论 -
3. Longest Substring Without Repeating Characters
3. Longest Substring Without Repeating Characters题目给出一个字符串,找出最长不含重复字符子字符串的长度。 例1: 输入: “abcabcbb” 输出: 3 Explanation: The answer is “abc”, which the length is 3.例2: 输入:”bbbbb” 输出:1 Expl...原创 2018-09-04 11:47:15 · 149 阅读 · 0 评论 -
13. Roman to Integer
13. Roman to Integer题目罗马数字由7个符号表示: I, V, X, L, C, D 和M。 相应的值是: Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000For example, two is written...原创 2018-06-27 15:06:15 · 103 阅读 · 0 评论 -
14. Longest Common Prefix
14. Longest Common Prefix题目写一个函数来找到字符串数组中的最长公共前缀字符串。 如果没有公共前缀,返回一个空字符串 “”。 例1: Input: [“flower”,”flow”,”flight”] Output: “fl”例2: Input: [“dog”,”racecar”,”car”] Output: “” 解释:在输入字符串数组中,没...原创 2018-06-26 18:27:14 · 139 阅读 · 0 评论 -
82.Remove Duplicates from Sorted List II
82. Remove Duplicates from Sorted List II题目给出一个有序链表,删掉有重复数字的所有节点,只保留原列表中不同的数字。 例如: 给出:1->2->3->3->4->4->5, 返回1->2->5. 给出: 1->1->1->2->3, 返回 2->3.代码...原创 2018-04-12 15:16:56 · 83 阅读 · 0 评论 -
82. Remove Duplicates from Sorted List II
82. Remove Duplicates from Sorted List II题目给出一个有序链表,删掉有重复数字的所有节点,只保留原列表中不同的数字。 例如: 给出:1->2->3->3->4->4->5, 返回1->2->5. 给出: 1->1->1->2->3, 返回 2->3.代码块public class Solution { public static ListNo原创 2018-03-06 21:19:24 · 99 阅读 · 0 评论 -
31. Next Permutation
31. Next Permutation题目实现下一个全排列,即重排数组按照字典顺序,找到下一个较大的全排列。 如果这种排列找不到,就必须按照最低的可能顺序进行重排(比如:按照升序排列)。 替换必须恰当,不要分配额外的存储空间。下面是几个例子。输入左栏,相应的输出右栏。 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1代码块package nextPerm原创 2017-11-03 11:42:21 · 150 阅读 · 0 评论 -
27. Remove Element
27. Remove Element题目给定一个数组和value值,删除所有的value值的对象,并返回新的长度。 不用为另一个数组分配额外的空间,你必须用不变的存储器来适当的实现。 元素的顺序可以被改变,你留下的超过新长度也没关系。比如: 给定一个输入数组nums = [3,2,2,3],val = 3 你的函数应该返回长度length=2,并且数组的前两个元素变成2。代码块import原创 2017-10-26 15:20:22 · 143 阅读 · 0 评论 -
18.4Sum
18. 4 Sum题目给出一个具有n个整数的数组S,是否有这样四个元素a,b,c,d,它们满足 a + b + c + d = target?找出所有的四元素组满足目标和。 注意:答案中不能包含重复的四元素组。代码块class Solution { public static List<List<Integer>> fourSum(int[] nums, int target) {原创 2017-10-25 16:40:33 · 158 阅读 · 0 评论 -
16. 3Sum Closest
16. 3Sum Closest题目给出一个具有n个整数的数组S,在S中找出这样的3个整数,它们的和最接近给定的目标值target。返回这三个整数的和。你可以假定每个输入只有一种答案。比如,给出数组S = {-1 2 1 -4},以及目标值 target = 1. 最接近目标值的和为2。(-1 + 2 + 1 = 2).代码块class Solution { public st原创 2017-10-23 15:30:12 · 231 阅读 · 0 评论 -
33.Search in Rotated Sorted Array
补上之前落下的两题:33题33.假定一个升序的数组在某一元素前旋转,(比如0 1 2 4 5 6 7 可能变成 4 5 6 7 0 1 2)。 给定一个目标值target来进行查找,如果在数组中找到则返回它的索引,否则返回-1。 比如 [4 5 6 7 0 1 2] target=6 则返回2; [4 5 6 7 0 1 2] target=3 则返回-1。 可以假设数组中没有重复的元原创 2017-10-13 22:28:47 · 178 阅读 · 0 评论 -
128. Longest Consecutive Sequence
Longest Consecutive Sequence题目给出一个无序整数数组,找出最长连续序列的长度。比如: 给出数组[100, 4, 200, 1, 3, 2], 最长连续序列是[1, 2, 3, 4]. 返回它的最大长度:4.你的算法复杂度为O(n)。代码块class Solution { public static int longestConsecutive(int[] nu原创 2017-10-22 17:40:07 · 218 阅读 · 0 评论 -
15.3 Sum
3 Sum题目给定一个具有n个整数的数组S,问在S中是否存在这样的元素a, b, c满足 a + b + c = 0? Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gi原创 2017-10-21 21:52:29 · 187 阅读 · 0 评论 -
60. Permutation Sequence
60. Permutation Sequence题目集合 [1,2,3,…,n] 一共有n个数,组成一个特定的全排列。 通过列出并按顺序标记出所有的排列。我们可以得到下面的排列(比如:n=3): “123” “132” “213” “231” “312” “321” 给定n和k,返回第k个全排列。注:给定的n将在1-9之间。 System.out.println(Integer.M原创 2017-11-06 21:11:15 · 171 阅读 · 0 评论 -
80. Remove Duplicates from Sorted Array II
80. Remove Duplicates from Sorted Array II写在之前: - 不会计数 - 不会continue(结束单次循环) - 不会把谁赋给谁(对索引不清楚) 自己抠了近两个小时,还是不对,然后发起了求助,感谢你。tell me 没有会不会,只有想不想。不会终将成为过去式。 —— RR原创 2017-10-10 00:16:34 · 153 阅读 · 0 评论 -
1.Two Sum
1.Two Sum题目给定一个整数数组,如果相加能够得到给定的目标值,就返回它们的索引, 可以假定每个输入只有一种解决方法,并且相同的元素不能使用两次。例子: 给定数组 nums = [2,7,11,15], target = 9, 因为 nums[0] + nums[1] = 2 + 7 = 9, 返回 [0, 1]代码块class Solution { public int[]原创 2017-10-18 22:18:35 · 143 阅读 · 0 评论