自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 用Java写中序遍历二叉树的非递归算法

package test;import java.util.*;public class InorderTree{public InorderTree(){}public List<Integer> inorderTraversal(TreeNode root) { List<Integer> list= new ArrayList<>(); i...

2020-04-04 18:07:57 478 1

原创 将一个链表中位置m到位置n的节点进行反转,要求只遍历一次

package test;import java.util.*;public class ReverseList{public ReverseList(){}public ListNode reverseBetween(ListNode head, int m, int n) { if(head == null) {return null;} int i=1; if(...

2020-04-04 17:20:48 1088

原创 给定一个链表和值x,对其进行分区,使得小于x的所有节点都位于大于或等于x的节点之前,同时保留两个分区中每个分区中节点的原始相对顺序。

public class PartitionList{public PartitionList(){}public ListNode partition(ListNode head, int x) { if(head == null) {return head;} ListNode before_head= new ListNode(0); ListNode before= b...

2019-11-18 16:54:01 233

原创 给定一个填充有0和1的二维二进制矩阵,找到仅包含1的最大矩形并返回其面积。

public class MaximalRectangle{public MaximalRectangle(){}public int maximalRectangle(char[][] matrix) { if(matrix.length == 0 || matrix[0].length == 0) {return 0;} int maxarea= 0; i...

2019-11-11 19:17:58 8419 3

原创 删除一个有序链表中的重复元素

public class ListNode{int val;ListNode next; ListNode(int val) { this.val = val; }}public class ReDupSortList{ReDupSortList(){}public ListNode deleteDuplicates(ListNode head) { if(hea...

2019-11-04 20:16:25 1223 1

原创 给定一个二维数组和一个单词,找出该单词是否存在于网格中。该单词可以由顺序相邻单元的字母构成,其中“相邻”单元是那些水平或垂直相邻的单元。同一字母单元格不能使用多次。

public class WordSearch{private boolean[][] isMarked;private int[][] dirction= {{0, -1}, {0, 1}, {-1, 0}, {1, 0}};private int row;private int col;private String word;private char[][] board;pub...

2019-10-29 15:42:47 2838

原创 给定一组不同整数的数组,返回其元素集合的所有可能子集

public class Subsets{public Subsets(){}public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> result= new ArrayList<List<Integer>>(); List<In...

2019-10-10 17:31:19 388

原创 给定整数n和k,输出从1到n的所有可能的k个数字的组合

public class Combinations{public Combinations(){}public List<List<Integer>> combine(int n, int k) { List<List<Integer>> result= new ArrayList<List<Integer>>();...

2019-10-10 14:47:47 1722 2

原创 给定字符串s和t,要求在s中寻找包含t中所有字符的最小窗口

public class MinimumWindowSubstring{public MinimumWindowSubstring(){}public String minWindow(String s, String t) { if(s.length() == 0 || t.length() == 0) {return "";} int start= 0;int end= 0;...

2019-10-05 17:36:58 1673

原创 一组元素中所有数值均等于0,1,2,编写尽可能高效的算法将相同数值的元素放置在一块

public class SortColor{public SortColor(){}public void sortColors(int[] nums) { int[] number= new int[3]; for(int i=0;i<nums.length;i++) {number[nums[i]]++;} for(int i=0;i<nu...

2019-10-04 16:41:02 172

原创 将一组有序元素以行序为主存储在二维数组中,编写尽可能高效算法判断该二维数组内是否包含指定元素

public class Searcha2DMatrix{public Searcha2DMatrix(){}public boolean searchMatrix(int[][] matrix, int target) { if(matrix.length == 0 || matrix[0].length == 0) {return false;} int high= mat...

2019-10-04 16:04:30 495

原创 给定两个字符串word1和word2,判断如何用最小的字符转换(插入、删除和替换)次数将word2转换成word1(word1.length()>word2.length())

public class EditDistance{public EditDistance(){}public int minDistance(String word1, String word2) { int[][] matrix= new int[word2.length()+1][word1.length()+1]; for(int i=0;i<word1.length...

2019-10-03 16:09:42 631

原创 N皇后问题

public class NQueens{public NQueens(){};public List<List<String>> solveNQueens(int n) { int[] location= new int[n+2]; List<List<String>> result= new ArrayList<List<...

2019-09-19 18:41:53 76

原创 给定一个单词数组和每行最大宽度,格式化文本。单词之间额外的空格应该尽可能均匀地分布。如果一行中的空格数在单词之间分配不均,左边的空槽将比右边的槽分配更多的空格,最后一行单词无额外空格

public class TextJustification{public TextJustification(){}public List<String> fullJustify(String[] words, int maxWidth) { int length= words.length; int i=0; List<String> r...

2019-09-16 13:42:29 790

原创 到达顶端需要n步。每次可以爬1步或2步。求共有多少种不同方式?

public class ClimbingStair{public ClimbingStair(){}public int climbStairs(int n) { if(n<3) {return n;} int sum1= 1; int sum2= 2; for(int i=3;i<=n;i++) { sum2 += sum1; sum1= s...

2019-09-15 20:04:43 389

原创 最大回文子串

public class LongestPalindromicSubstring{public LongestPalindromicSubstring(){}public String longestPalindrome(String s) { int maxlength= 0; int start= 0;int end= 0; for(int i=0;i<s.l...

2019-09-11 20:41:52 115

原创 二进制加法

public class AddBinary{public AddBinary(){}public String addBinary(String a, String b) { if(a == null && b == null) {return "0";} String result= ""; int i= a.length()-1; int j= b.le...

2019-09-10 18:51:34 159

原创 在一个m*n的网格中将障碍物和空格分别以1和0代表,求出从(0,0)到(m-1,n-1)的路径数量

public class UniquePaths{public UniquePaths(){}public int uniquePathsWithObstacles(int[][] obstacleGrid) { if(obstacleGrid.length == 0 || obstacleGrid[0].length == 0) {return 0;} ...

2019-09-10 17:22:28 2464

原创 给定一个表示非负整数的非空数字数组,该整数加1。存储这些数字时,最高有效数字位于列表的开头,数组中的每个元素都包含一个数字。返回整数同样以数组形式

public class PlusOne{public PlusOne(){}public int[] plusOne(int[] digits) { int length= digits.length; for(int i=length-1;i>=0;i--) { digits[i] += 1; if(digits[i] < 10) {return digi...

2019-09-10 16:43:59 598

原创 从一个m*n网格的左上角至右下角共有多少种可能路径

public class UniquePaths{public UniquePaths(){}public int uniquePaths(int m, int n) { if(m == 0 || n == 0) {return 0;} int[] numpath= new int[n]; numpath[0]= 1; for(int i=0;i<m;i++) { ...

2019-09-10 16:04:20 1748

原创 给定一个用非负数填充的m×n网格,从左上方到右下方找到一条路径,使路径上所有数字的总和最小。

public class MinimumPathSum{public MinimumPathSum(){}public int minPathSum(int[][] grid){ if(grid.length == 0 || grid[0].length == 0) {return 0;} int m= grid.length; int n= grid[0].length; ...

2019-09-09 21:25:15 1378

原创 给定一个链表,将链表向右旋转k个位置,其中k是非负的。

public class RotateList{public RotateList(){}public ListNode rotateRight(ListNode head, int k) { if(head == null || k == 0) {return head;} ListNode temp= head; ListNode temp_1= null; ...

2019-09-09 20:01:43 729

原创 给定n和k,返回第k个置换序列。

集合[1,2,3,…,n]总共包含n!独特的排列。通过按顺序列出和标记所有排列,给定n和k,返回第k个置换序列public class PermutationSequence{public PermutationSequence(){}public String getPermutation(int n, int k) { String result= ""; int index= ...

2019-09-08 12:47:06 421

原创 给定正整数n,生成一个以螺旋顺序填充从1到n²元素的方阵。

public class SpiralMatrix2{public SpiralMatrix2(){}public int[][] generateMatrix(int n) { int[][] result= new int[n][n]; int num=1; if(n == 0) {return result;} for(int i=0;i<n/2;i++) ...

2019-09-07 20:54:32 1296

原创 给定一组不重叠的间隔,在间隔中插入一个新的间隔(如有必要,合并)。您可以假设时间间隔最初是根据它们的开始时间进行排序的。

public class InsertInterval{public InsertInterval(){}public int[][] insert(int[][] intervals, int[] newInterval) { List<int[]> result= new ArrayList<>(); if(newInterval.length ...

2019-09-07 19:56:50 387

原创 矩阵螺旋顺序表示

package test;import java.util.*;public class SpiralMatrix{public SpiralMatrix(){}List<Integer> order= new ArrayList<Integer>();public List<Integer> spiralOrder(int[][] matrix) ...

2019-09-05 20:03:09 405

原创 矩阵旋转算法

矩阵旋转算法(该算法不需要创建额外的二维数组)public void rotate(int[][] matrix){int length= matrix[0].length;int index= 0; for(int i=0;i<length/2;i++) { for(int j=index;j<length-index-1;j++) { ...

2019-08-29 21:02:29 2115

空空如也

空空如也

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

TA关注的人

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