自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java泛型

使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。 一、为什么要使用泛型程序设计1、增加泛型类之前在Java中增加泛型类之前,泛型程序设计是用继承实现的。     比如下面的代码中,ArrayList类只维护一个Object引用的数组:     这样的实现有两个问题:         ①当获取

2017-12-03 14:20:34 390

转载 选择文件与获取选中文件绝对路径

public static void main(String[] args) { JFrame frame = new JFrame(); JButton button = new JButton("上传"); frame.add(button); frame.setVisible(true); button.addActionListener(new ActionListen

2017-11-19 21:43:17 2970

原创 通过文件选择框获取指定的目录路径

JFileChooser jfc = new JFileChooser("D:\\"); jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); //jfc.setName("请选择要将图片保存到的位置"); int returnVal = jfc.showOpenDialog(jfc); if(returnVal == J

2017-11-19 21:35:00 1358

原创 leetcode[3Sum]//待整理多种解法

解法一:class Solution { //要找出和为0的三个数,那么就相当于找出两个数,它们的和等于第三个数的值的相反数 public List> threeSum(int[] nums) { List> res = new ArrayList<>(); Arrays.sort(nums);//先将数组排序,这样可以防止取到重复的三元组

2017-09-10 17:52:38 496

原创 leetcode[Integer to Roman]//待整理多种解法

解法一:class Solution { public String intToRoman(int num) { //map用于存放罗马数字的进制 Map map = new HashMap<>(); map.put(1, "I"); map.put(4, "IV"); map.put(5, "V");

2017-09-06 21:26:51 378

原创 leetcode[Container With Most Water]

错误解法(遇到很大的数组时无法通过,会超时):class Solution { //这个题的目的是找到两条线段,这两条线段和彼此之间相交的x轴的长度形成一个竖直(因为要求这个容器不允许倾斜)的容器,计算这个容器可以装多少水 //那么就是利用木桶原理(因为这个容器不允许倾斜),然后用最短的线段做容器的高 public int maxArea(int[] height) {

2017-08-31 13:31:47 225

原创 leetcode[ZigZag Conversion]//待整理多种解法

解法一:class Solution { public String convert(String s, int numRows) { if(numRows < 2){//一行的直接返回原字符串即可 return s; } StringBuilder[] row = new StringBuilder[numRows];//这

2017-08-29 13:47:57 341

原创 leetcode[Longest Palindromic Substring]//待整理多种解法

错误解法(遇到很长的字符串时会超时):class Solution { private boolean isPalindrome(StringBuilder s){ int i = 0; int j = s.length() - 1; while(i <= j){ if(s.charAt(i) != s.charAt(j)) return false;

2017-08-28 18:20:59 423

原创 leetcode[Longest Substring Without Repeating Characters]//待整理多种解法

解法一:class Solution { public int lengthOfLongestSubstring(String s) { int max = 0; Set set = new HashSet<>();//用于判断子串中是否有重复元素 for(int i = 0; i < s.length(); i++){ set.clear()

2017-08-27 10:44:12 319

原创 leetcode[Image Smoother]//待整理多种解法

解法一:class Solution { public int[][] imageSmoother(int[][] M) { int[][] res = new int[M.length][M.length != 0 ? M[0].length : 0]; for(int i = 0; i < M.length; i++){ for(int

2017-08-26 10:49:31 327

原创 leetcode[Judge Route Circle]//待整理多种解法

解法一:class Solution { //遍历统计字符串,看左与右的个数是否相同,上与下的个数是否相同 public boolean judgeCircle(String moves) { int left = 0; int right = 0; int up = 0; int down = 0; f

2017-08-26 10:28:48 249

原创 leetcode[Two Sum IV - Input is a BST]//待整理多种解法

解法一:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { /

2017-08-25 09:43:39 338

原创 leetcode[Set Mismatch]//待整理多种解法

解法一:class Solution { public int[] findErrorNums(int[] nums) { //由于只重复了一个元素,缺少了一个元素 int[] check = new int[nums.length]; for(int i = 0; i < nums.length; i++) check[nu

2017-08-25 09:21:12 281

原创 leetcode[Maximum Average Subarray I]

解法一:class Solution { public double findMaxAverage(int[] nums, int k) { //int maxSum = Integer.MIN_VALUE; 求和的不能用与数组无关的数来赋初值 //题目中提到数组长度大于等于1 //int maxSum = nums[0];//不能用这个来判断,因为

2017-08-24 10:59:39 292

原创 leetcode[Average of Levels in Binary Tree]//待整理多种解法

解法一:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { /

2017-08-24 10:38:52 253

原创 leetcode[Sum of Square Numbers]

解法一:class Solution { /*//因为a^2 + b^2 >= 2ab //而a^2 + b^2 = c //所以c >= 2ab //这样可以缩小查找范围 public boolean judgeSquareSum(int c) { //因为负数的完全平方等于其绝对值的完全平方,所以只考虑正数就可以了,0也要考虑,因为可能那个数自己就是完全平方数

2017-08-23 11:29:40 312

原创 leetcode[Maximum Product of Three Numbers]//待整理多种解法

解法一:class Solution { /*//显然,从一个数组中找出三个数使得这三个数的乘积最大,那么这三个数就是数组中最大的三个元素 //证明:数组中最大的三个元素为abc,若存在其它三个元素xyz,那么abc/xyz总大于1,显然abc是最大的 public int maximumProduct(int[] nums) { //但是上面考虑的情况是假设数组中的数都

2017-08-23 10:55:50 250

原创 leetcode[Merge Two Binary Trees]

解法一:就是根据两棵树,遍历的时候往下走,一棵没有的结点用另一棵的结点补上,两棵都没有的就为null,两棵都有的就求个和/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * T

2017-08-22 16:14:57 255

原创 根据先根序列创建二叉树

//根据先根序列来创建一棵二叉树,list中空结点用null表示private TreeNode createTree(List list){ if(list.isEmpty()){//这样想递归出口,若一开始list为空,那当然就是空子树了,递归要从宏观 return null; } TreeNode out = list.remove(0); TreeNode root = nu

2017-08-22 15:57:11 3950

原创 leetcode[Construct String from Binary Tree]//待整理多种解法

解法一:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { /

2017-08-22 13:20:11 262

原创 疯狂队列问题

小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大的顺序来进行列队。现在给出n个学生的身高,请计算出这些学

2017-08-21 23:42:00 382

原创 堆棋子问题

小易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道要让棋盘上出现有一个格子中至少有i(1 ≤ i ≤ n)个棋子所需要的最少操作次数.输入描述:输入包括三行,第一行一个整数n(1 ≤ n ≤ 50),表示棋子的个数第二行为n个棋子的横坐

2017-08-21 17:06:36 578

原创 leetcode[Can Place Flowers]

解法一:class Solution { public boolean canPlaceFlowers(int[] flowerbed, int n) { int rest = n;//记录还有多少盆花没放进去 for(int i = 0; i < flowerbed.length; i++){ if(flowerbe

2017-08-21 14:59:13 257

原创 leetcode[Minimum Index Sum of Two Lists]//待整理多种解法

解法一:class Solution { public String[] findRestaurant(String[] list1, String[] list2) { Map map1 = new HashMap<>(); Map map2 = new HashMap<>(); //分别统计list1和list2的HashMap

2017-08-21 11:43:14 282

原创 递归求解C(n,m)

public class Temp { //递归求解组合数C(n,m),将组合结果放到allList中 private static void recurse(int k, int n, int m, List> allList, List nowList){ //k代表当前组合到了第几个数 List newNowList = new ArrayList<>(nowList);

2017-08-21 00:23:38 979

原创 leetcode[Range Addition II]

解法一:class Solution { /*public int maxCount(int m, int n, int[][] ops) { int[][] matrix = new int[m][n]; int max = 0; for(int i = 0; i < ops.length; i++){ int a

2017-08-20 15:32:08 296

原创 leetcode[Longest Harmonious Subsequence]

解法一:class Solution { //先将其排序,然后遍历找子串,子串的首尾元素差值只能为1 public int findLHS(int[] nums) { Arrays.sort(nums); int length = 0; int cur = 1;//代表当前满足条件的子串的长度 int head = 0;

2017-08-20 14:13:30 246

原创 leetcode[Shortest Unsorted Continuous Subarray]//待整理多种解法

解法一:class Solution { public int findUnsortedSubarray(int[] nums) { //既然要找出最短的需要排序的子序列,从而让整个数组处于升序的状态 //那么就将数组排序后,两个数组从收尾进行对比,找出最开始不一致的(这是合理的,因为要求把子序列排序后,就处于升序,所以不存在找出多个子序列来比较长度的情况)

2017-08-19 11:01:31 286

原创 leetcode[Distribute Candies]//待整理多种解法

解法一:class Solution { public int distributeCandies(int[] candies) { //根据题意,姐姐要分到尽可能多的糖果,而且姐姐和弟弟的糖果数量要相同 //那么就先求出所有的糖果种类数,再求出糖果总数 int sum = candies.length;//糖果总数 Set s

2017-08-19 10:50:12 304

原创 leetcode[Subtree of Another Tree]//待整理多种解法

解法一:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { /

2017-08-18 14:18:51 341

原创 leetcode[Reshape the Matrix]//待整理多种解法

解法一:class Solution { public int[][] matrixReshape(int[][] nums, int r, int c) { //首先判断能不能重塑矩阵 if(nums.length == 0) return nums; int row = nums.length;//代表原矩阵的行数 int col =

2017-08-18 11:36:47 227

原创 leetcode[Binary Tree Tilt]//待整理多种解法

解法一:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { /

2017-08-18 11:12:00 234

原创 leetcode[Array Partition I]//待整理多种解法

解法一:class Solution { public int arrayPairSum(int[] nums) { //根据题意,要让求出的和最大,那么就让较小的数互相消化,所以对数组排序,每次取奇数位的数求和,就是最后的结果 Arrays.sort(nums); int sum = 0; for(int i = 1; i <= nums

2017-08-18 10:54:48 303

原创 leetcode[Reverse Words in a String III]//待整理多种解法

解法一:public class Solution { public String reverseWords(String s) { String[] split = s.split(" "); StringBuilder sb = new StringBuilder(); for(int i = 0; i < split.length

2017-08-17 00:33:06 332

原创 leetcode[Student Attendance Record I]//待整理多种解法

解法一:public class Solution { //A student could be rewarded if his attendance record doesn't contain more than one 'A' (absent) //or more than two [continuous] 'L' (late). 对L的要求是[连续]超过2次 public

2017-08-17 00:27:18 307

原创 leetcode[Diameter of Binary Tree]//待整理多种解法

解法一:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class MyInt{//自定义一

2017-08-16 00:24:19 294

原创 leetcode[Reverse String II]//待整理多种解法

解法一:public class Solution { public String reverseStr(String s, int k) { StringBuilder sb = new StringBuilder(); for(int i = 0; i < s.length(); i += 2*k){ int leftlength

2017-08-15 23:19:04 321

原创 leetcode[Convert BST to Greater Tree]//待整理多种解法

解法一:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Soluti

2017-08-15 00:52:27 257

原创 leetcode[K-diff Pairs in an Array]//待整理多种解法

解法一:public class Solution { public int findPairs(int[] nums, int k) { //因为题目中有下面的要求: //Although we have two 1s in the input, we should only return the number of unique pairs. /

2017-08-15 00:38:20 265

原创 leetcode[Minimum Absolute Difference in BST]//待整理多种解法

解法一:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Soluti

2017-08-13 00:43:24 264

空空如也

空空如也

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

TA关注的人

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