
数据结构与算法
BlankCHN
这个作者很懒,什么都没留下…
展开
-
LeetCode-334. 递增的三元子序列-详解-Java实现
题目链接题目结果代码如下:class Solution { public boolean increasingTriplet(int[] nums) { if(nums==null||nums.length<3){ return false; } int small = Integer.MAX_VAL...原创 2019-12-04 22:14:38 · 420 阅读 · 0 评论 -
LeetCode-73. 矩阵置零-Java实现
题目链接题目结果代码如下:class Solution { public void setZeroes(int[][] matrix) { if(matrix==null||matrix.length<=0){ return; } int rows = matrix.length; i...原创 2019-11-25 21:49:35 · 342 阅读 · 0 评论 -
LeetCode-49. 字母异位词分组-Java实现
题目链接题目结果1. 暴力思路代码:class Solution { public List<List<String>> groupAnagrams(String[] strs) { List<List<String>> outterList = new ArrayList<>(); ...原创 2019-11-25 21:37:54 · 357 阅读 · 1 评论 -
LeetCode-15. 三数之和-Java实现
题目链接题目结果代码如下:class Solution { public List<List<Integer>> threeSum(int[] nums) { Arrays.sort(nums); List<List<Integer>> outter = new ArrayList<>(...原创 2019-11-21 11:47:25 · 233 阅读 · 0 评论 -
LeetCode-234. 回文链表-Java实现
题目运行结果:代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public boole...原创 2019-11-01 16:31:15 · 237 阅读 · 0 评论 -
LeetCode-7. 整数反转-Java实现
题目链接结果运行结果如下:代码如下:class Solution { public int reverse(int x) { boolean judge = x >=0; int now = 0; int max = Integer.MAX_VALUE / 10; int min = Integer.MIN...原创 2019-08-08 21:52:07 · 270 阅读 · 0 评论 -
LeetCode-48. 旋转图像-Java实现
结果代码如下:class Solution { public void rotate(int[][] matrix) { int rowLength = matrix.length-1; for(int i = 0;i < matrix.length/2;i++){ int[] temp = matrix[i]; ...原创 2019-05-12 12:05:06 · 386 阅读 · 0 评论 -
LeetCode-344. 反转字符串-Java实现
结果代码如下:class Solution { public void reverseString(char[] s) { if(s==null||s.length<=1){ return; } int length = s.length-1; int center = length/2...原创 2019-05-20 10:30:15 · 946 阅读 · 0 评论 -
LeetCode-1. 两数之和-Java实现
题目链接结果代码如下:class Solution { public int[] twoSum(int[] nums, int target) { if(nums.length<=2){ int []resutl = new int[2]; for(int i = 0;i < nums.length;i++...原创 2019-05-09 11:20:38 · 303 阅读 · 0 评论 -
LeetCode-242. 有效的字母异位词-Java实现
题目链接结果运行结果如下:代码如下:class Solution { public boolean isAnagram(String s, String t) { if(s==null||t==null||s.length()!=t.length()){ if(s==null&&t==null){ ...原创 2019-08-09 20:34:16 · 217 阅读 · 0 评论 -
LeetCode-125. 验证回文串-Java实现
题目链接结果运行结果如下:代码如下:class Solution { public boolean isPalindrome(String s) { if(s==null||s.length()<=1){ return true; } s = s.toLowerCase(); for(...原创 2019-08-09 21:01:33 · 311 阅读 · 0 评论 -
LeetCode-28. 实现 strStr()-Java实现
题目链接题目结果运行结果:代码如下:class Solution { public int strStr(String haystack, String needle) { if(haystack==null||needle==null){ return -1; } if(needle.length()...原创 2019-08-12 21:40:30 · 108 阅读 · 0 评论 -
LeetCode-38. 报数-Java实现
题目链接题目结果运行结果:代码如下:class Solution { public String countAndSay(int n) { if(n==1){ return "1"; } String str = countAndSay(n-1); StringBuilder sb = ...原创 2019-08-12 21:45:03 · 237 阅读 · 0 评论 -
LeetCode-14. 最长公共前缀-Java实现
题目链接题目结果运行效果:代码如下:class Solution { public String longestCommonPrefix(String[] strs) { if(strs==null || strs.length<=0){ return ""; } if(strs[0]==null...原创 2019-08-29 15:02:03 · 774 阅读 · 0 评论 -
LeetCode-19. 删除链表的倒数第N个节点-Java实现
题目链接题目结果运行效果如下:代码如下:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { ...原创 2019-09-11 22:39:07 · 312 阅读 · 0 评论 -
LeetCode-283. 移动零-Java实现
结果代码如下:class Solution { public void moveZeroes(int[] nums) { int index = -1; for(int i = 0;i < nums.length;i++){ int now = nums[i]; if(now!=0){ ...原创 2019-04-19 15:18:21 · 406 阅读 · 1 评论 -
LeetCode-66. 加一-Java代码实现
结果代码:class Solution { public int[] plusOne(int[] digits) { boolean needNew = false; for(int i = digits.length-1;i>=0;--i){ int now = digits[i]; now++;...原创 2019-04-18 12:38:11 · 302 阅读 · 0 评论 -
LeetCode-171. Excel表列序号-Java实现
实现效果class Solution { public int titleToNumber(String s) { int count = 0; int start = 64; int k = s.length(); char[] chars = s.toCharArray(); for(int i = ...原创 2019-02-12 15:47:00 · 560 阅读 · 0 评论 -
LeetCode-206. 反转链表-Java实现
实现效果非递归实现public ListNode reverseList(ListNode head) { if(head==null){ return null; }else if(head.next==null){ return head; } ListNod...原创 2019-02-12 16:53:40 · 2130 阅读 · 1 评论 -
数据结构与算法(3)队列
阅读极客时间《数据结构与算法》总结队列的定义队列就是满足先进先出、后进后出的数据结构,队列支持的操作有两个,一个是入队操作-enqueue(),另一个是出队操作-dequeue()。入队操作将数据放置队尾,出队操作将位于队首的数据取出。队列的分类顺序队列就是用数组的形式构造队列,使用头指针、尾指针指示出队、入队操作。当存储空间用完后,若头指针不是数组的0号位置,那么就将头指针和尾指针之间...原创 2019-02-23 13:26:06 · 559 阅读 · 0 评论 -
LeetCode-622. 设计循环队列-Java实现
试题链接实现效果代码如下:class MyCircularQueue { private int[] content; private int head; private int tail; private int length; /** Initialize your data s...原创 2019-02-23 16:07:19 · 1834 阅读 · 0 评论 -
LeetCode-160. 相交链表-Java实现
实现效果public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if(headA == null || headB == null) return null; ListNode pA = headA, pB = headB; while(pA != pB) { ...原创 2019-02-13 14:55:24 · 731 阅读 · 1 评论 -
数据结构与算法(4)递归
阅读极客时间《数据结构与算法之美》总结递归的概念递归就是将一个问题分解为子问题后,通过不断调用子问题的子问题的…的子问题,知道达到出口条件后得到问题的答案的过程。感觉像是一个螺旋下降的过程,从上往下看,就是不断的自我循环,但是从侧面看的话,就是一个不断向深、向下求解的过程。递归的条件如下:问题能够分解为子问题。所有子问题即使数据规模不一致,但是其解决思路是一致的,就像前面说的一样,是不断...原创 2019-02-24 14:24:04 · 194 阅读 · 0 评论 -
数据结构与算法(2)栈
阅读极客时间的《数据结构与算法之美》总结栈的基本定义栈就是满足先进后出、后进先出的数据结构,其具体实现多种多样,有使用链表来构成的链式栈,也有使用数组构成的顺序栈。使用其他数据结构来进行封装,就是为了屏蔽因数组或链表操作的灵活性而可能带来的无意间出错,向外只提供出栈、入栈操作,这样能够简化对其使用的逻辑。栈的应用现实中有很多应用,文章中指出了有意思的四种,浏览器的向前向后操作、优先级不同的...原创 2019-02-19 15:07:30 · 537 阅读 · 0 评论 -
LeetCode-26. 删除排序数组中的重复项-Java实现
试题链接实现效果代码如下:class Solution { public int removeDuplicates(int[] nums) { if(nums.length<=0){ return 0; } int temp = nums[0]; ...原创 2019-02-25 19:28:19 · 142 阅读 · 0 评论 -
LeetCode-225. 用队列实现栈-Java实现
试题链接实现效果数组实现代码如下:class MyStack { private int[] listOne; private int size = 0; private int length = 1024; /** Initialize your data structure here. */ ...原创 2019-02-20 15:35:01 · 931 阅读 · 0 评论 -
LeetCode126周赛-1002. 查找常用字符-Java实现
题目链接结果题目如下:给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。输入:["bella","label","roller"]输出:["e","l","l"]输入:["cool","原创 2019-03-05 11:02:03 · 523 阅读 · 0 评论 -
LeetCode- 189. 旋转数组-Java实现
题目链接结果代码:class Solution { public void rotate(int[] nums, int k) { if(nums==null||nums.length<=1||k<=0){ return; } int n = nums.length; k %= n...原创 2019-03-20 16:03:16 · 420 阅读 · 0 评论 -
LeetCode-122. 买卖股票的最佳时机 II-Java实现
题目链接结果代码实现:class Solution { public int maxProfit(int[] prices) { if(prices==null||prices.length<=1){ return 0; } int last = prices[0]; int now; ...原创 2019-03-18 20:42:52 · 421 阅读 · 0 评论 -
LeeCode-136. 只出现一次的数字-Java实现
赛题连接结果运行结果:代码如下:class Solution { public int singleNumber(int[] nums) { int temp = 0; for (int i = 0; i < nums.length; i++) { temp ^= nums[i]; ...原创 2019-04-14 13:44:30 · 197 阅读 · 0 评论 -
LeetCode-350. 两个数组的交集 II-Java实现
赛题链接结果代码:class Solution { public int[] intersect(int[] nums1, int[] nums2) { if(nums1==null||nums2==null||nums1.length<=0||nums2.length<=0){ return new int[0]; ...原创 2019-04-17 10:00:23 · 1616 阅读 · 1 评论 -
数据结构与算法(1)数组与链表
数组数组是在内存上连续的内存空间。数组随机查找算法复杂度为O(1),但是插入和删除都为O(n)(这个要看情况,要是数据不是按照顺序的话,那么直接把目标位置替换成新的值,然后将旧的值放到最后,这样算法复杂度依然为O(1),删除的时候把删除的地方做标记,等到空间不足的时候再将所有删除的地方全部移除,其他元素进行前移,这样算法效率同样有提升,有点像JVM的标记回收法)由于内存的碎片化很可能造成没...原创 2019-02-12 15:35:52 · 183 阅读 · 0 评论