![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 55
XTAOTWO
这个作者很懒,什么都没留下…
展开
-
(java)leetcode771 宝石与石头(Jewels and Stones)
题目描述:给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例1 :Input: J = "aA", S = "aAAbbbb"Output: 3示例2:Input:...原创 2018-10-28 16:26:35 · 360 阅读 · 0 评论 -
(java)leetcode121 买卖股票的最佳时机1(Best Time to Buy and Sell Stock)针对数组的峰值和谷底的操作
题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = ...原创 2018-11-12 22:21:26 · 301 阅读 · 0 评论 -
(java)leetcode868 二进制距离(Binary Gap)
题目描述:给定一个正整数N,将N表示为二进制数,并找到在二进制表示的N中两个连续1之间的最长距离,如果没有两个连续的1,则返回0。示例1:Input: 22Output: 2Explanation: 22表示为二进制为 0b10110两个连续的1之间的最大距离值为2解题思路:首先要做的是将正整数N转换为2进制数,然后去计算每两个相邻的1之间的距离,找出其中最大的距离...原创 2018-11-13 22:05:59 · 456 阅读 · 0 评论 -
(java)leetcode122 买卖股票的最佳时机2 数组的多个谷底与峰值的求和
题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候...原创 2018-11-13 22:29:26 · 375 阅读 · 0 评论 -
Spring笔记(1)——开发环境的搭建
首先下载Spring的jar包,下载方式有很多,大家可以自己上网去查找,这里我也给出一个网址,http://repo.spring.io/release/org/springframework/spring/,可以下载所有版本的spring的jar包。下载解压后的目录如下我们所需要的就是libs文件夹下的jar包,当然不需要把所有的jar包都引入,把下图中的5个引入工程即可,其他的...原创 2018-11-19 19:57:28 · 239 阅读 · 0 评论 -
spring笔记(2)——spring核心控制反转IoC详解及入门示例
控制反转,一开始理解起来真的就完全不懂在说什么,看了几遍以后,粗浅的说说自己的理解。在传统的java程序开发中,当我们需要一个对象时,都是在程序内部主动的去创建一个对象,而这样的做法会使得程序很复杂,,需要去掌握new这个对象的全部过程;而控制反转的思想就是,当我需要一个对象的时候,我不再在程序内部自己去创建了,而是告诉一个第三方,我需要一个什么样的对象,然后这个第三方就会主动的把我们所需要的...原创 2018-11-19 20:14:37 · 329 阅读 · 0 评论 -
mybatis学习(2)——入门实例
在上一篇博客中,我们已经把所有的准备工作做好了,包括数据库和mybatis下载等,接下我们进入一个实际的案例,来理解mybatis是如何工作的。1、新建项目这里使用的软件是IDEA,这个无关紧要,我们首先建立一个Java项目,工程最后的结构如下所示,我们将先前的mybatis的jar包(包括lib文件下的jar包)和java连接sqlite数据库的jar包,拷贝到lib文件夹中。2...原创 2018-11-25 21:27:55 · 253 阅读 · 0 评论 -
mybatis学习(3)——mybatis框架下的增、删、改、查功能
基于前一篇博客的实例,我们这次来完成mybatis框架下sqlite数据库增、删、改、查的实现。1、修改StudentMapper接口首先修改上一次的StudentMapper接口,新增几个方法。package com.mapper;import com.pojo.Student;import java.util.List;public interface StudentMa...原创 2018-11-25 22:37:08 · 449 阅读 · 0 评论 -
mybatis学习(1)——准备工作
写在前面首先我也是刚刚学习mybatis,对于深层次的原理暂时不做过多的介绍,如果后面有时间深入的研究其原理后,再来写相关的博客。目前更多的是通过实际的案例来介绍mybatis的各种功能及其应用,方便大家快速上手,并在项目中使用,如果我在文中有什么错误,也请大家在评论中指出,共同进步。本文作为mybatis系列博客的第一篇,首先讲的是一些准备工作,包括jar包的下载,数据库的安装和配置等。...原创 2018-11-25 16:24:45 · 326 阅读 · 0 评论 -
mybatis学习(4)——基础配置文件详解
前面的博客中讲了mybatis的入门示例,接下详细的分析一下mybatis的基础配置文件。基础配置文件的结构如下,它的所有元素都包含在内。<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...原创 2018-12-02 21:41:20 · 241 阅读 · 1 评论 -
(java)leetcode2 两数相加
题目描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&...原创 2019-05-04 16:25:20 · 264 阅读 · 0 评论 -
(java)leetcode3 无重复字符的最长子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为...原创 2019-05-04 19:49:23 · 217 阅读 · 0 评论 -
java设计模式之单例模式的几种实现方式
单例模式单例模式确保某一个类只有一个实例,而且自行实例化,这个类提供了访问其唯一对象的方式,可以直接访问,不需要实例化该对象。单例模式的几种实现方式1、懒汉式(线程不安全)public class Singleton{ private static Singleton instance; //私有构造函数 private Singleton(){} ...原创 2019-05-04 20:19:40 · 250 阅读 · 0 评论 -
(java)leetcode509 斐波那契数列的常规解法及其改进(新增)
题目描述:斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定N,计算F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = ...原创 2019-05-06 20:29:02 · 511 阅读 · 0 评论 -
java并发编程:volatile关键字解析
java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不...转载 2019-06-12 20:51:51 · 237 阅读 · 0 评论 -
(java)leetcode682 棒球比赛(baseball game)对一个字符串数组根据不同字符类型进行相应的处理
题目描述:你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. "+"(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3. "D"(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4. "C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效...原创 2018-11-12 21:58:35 · 628 阅读 · 0 评论 -
Java设计模式之动态代理
写在前面,最近在学习java,动态代理这部分看的头疼,先将书上的例子自己实现了下,好在例子还比较能理解,先记录一下,以便加深印象,后面需要用到的时候,再去深入理解。动态代理的意义在于生成一个占位(又称代理对象),来代理真实的对象,从而控制真实对象的访问。代理模式,假设你有一家公司,你的公司是一家软件公司,你是一位软件工程师。客户带着需求去找公司肯定不会直接和你谈,而是去找商务谈,此时客户会...原创 2018-11-12 21:45:26 · 190 阅读 · 0 评论 -
如何在IDEA中建立一个javaweb项目(新手教程)
写在前面,IDEA中,【project】和【module】的关系,我的理解就是,project是一个大项目,然后一个大项目下可以多个module,就像通常在开发的时候会把一个项目分成很多独立的模块来做,对应eclipse来说,project就是workspace,module就是project。(不知理解是否正确)最近也正在学习IDEA的使用,下面将IDEA中建立一个javaweb项目的过程记...原创 2018-11-04 17:06:56 · 18260 阅读 · 1 评论 -
(java)leetcode804 唯一摩尔斯密码词(Unique Morse Code Words)
题目描述:国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-...","-.-.","-.."原创 2018-10-28 16:48:36 · 256 阅读 · 0 评论 -
(java)leetcode905 将数组按奇偶性排序(Sort Array By Parity)
题目描述:给定一个非负整数数组A,返回一个偶数在前,奇数在后的数组。示例:Input: [3,1,2,4]Output: [2,4,3,1]以下三个输出 [4,2,3,1], [2,4,1,3], [4,2,1,3] 也是正确结果解题思路:新建一个数组newA,然后去遍历给定数组,判断每一个数的奇偶性,如果时偶数,则从前开始添加进新数组,若是奇数,则从后开始添加进新数组,...原创 2018-10-28 17:06:45 · 336 阅读 · 0 评论 -
(java)leetcode461 汉明距离( Hamming Distance)
题目描述:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。(汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。------百度百科解释)给出两个整数 x 和 y,计算它们之间的汉明距离。示例...原创 2018-10-28 18:00:35 · 531 阅读 · 0 评论 -
(java)leetcode832 翻转图像(Flipping an Image)
题目描述:给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例1:输入: [[1,1,0],[1,0,1]...原创 2018-10-29 19:17:44 · 367 阅读 · 0 评论 -
(java)leetcode617 合并二叉树(Merge Two Binary Trees)
题目描述:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。输入: Tree 1 Tree 2 ...原创 2018-10-29 19:30:22 · 385 阅读 · 2 评论 -
(java)leetcode561 数组拆分1(Array Partition 1)
题目描述:给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, 1...原创 2018-10-29 19:45:44 · 298 阅读 · 0 评论 -
(java)leetcode728 自除数(Self Diving Number)
题目描述:自除数 是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例:输入: 上边界left = 1, 下边界right = 22输出: [1, 2, 3, ...原创 2018-10-29 20:01:45 · 559 阅读 · 0 评论 -
(java)leetcode852 山脉数组的封顶索引(二分查找法找出数组中最大值的下标)(Peak Index in a Mountain Array)
题目描述:我们把符合下列属性的数组 A 称作山脉:A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] <...原创 2018-10-29 20:18:36 · 471 阅读 · 0 评论 -
(java)leetcode922 将数组按奇偶性分类(保证数组值的奇偶性和下标的奇偶性一致)(Sort Array By Paity Ⅱ)
题目描述:给定非负整数数组A,A中一半是偶数,一半是奇数。对数组进行排序, 若 A[i] 是偶数,则 i 是偶数;若 A[i] 是奇数,则 i 是奇数。你可以返回任意一种结果。示例: Input: [4,2,5,7]Output: [4,5,2,7]Explanation: [4,7,2,5], [2,5,4,7], [2,7,4,5] 都是正确输出.解题思路:本...原创 2018-10-29 20:43:42 · 656 阅读 · 0 评论 -
(java)leetcode445 分发饼干(Assign Cookies)
题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例1:输入: ...原创 2018-10-31 22:33:37 · 400 阅读 · 0 评论 -
(java)leetcode717 1比特与2比特字符 即根据不同的长度对字符进行解码(1-bit and 2-bit Characters)
题目描述:有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。示例1:输入: bits = [1, 0, 0]输出: True解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。示例2:输...原创 2018-10-30 21:42:09 · 523 阅读 · 0 评论 -
(java)leetcode67 二进制数求和 (Add Binary)
题目描述:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"解题思路:最直接的解法,从最低位开始读取二进制数的每一位,转成int型,做加法,加法规则为逢2进1原创 2018-10-30 21:51:50 · 622 阅读 · 0 评论 -
(java)leetcode415 字符串相加(两个整数保存成字符串的形式,对它们求和)(Add String)
题目描述:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。解题思路:题目明确要求不能将字符串转成int,不然这题毫无意义。解...原创 2018-10-30 21:59:36 · 1331 阅读 · 1 评论 -
(java)leetcode258 各位相加(给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。)(Add Digit)
题目描述:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。解题思路:直接循环取出每一位上的数字,求和后,判断是否满足结束条件,若不满足,则继续对求和后的数字计算,知道满足条件为止。代码实现(java):cl...原创 2018-10-30 22:18:31 · 2676 阅读 · 0 评论 -
二叉树的深度优先和广度优先遍历(超详细步骤)(java实现)
今天在leetcode上做题时,有一题涉及到二叉树的遍历,数据结构这块没有好好学过,就找了找资料,整理了一下:二叉树:二叉树,顾名思义,就是一种树结构,树的每个结点最多有两个子节点,通常称为左节点和右节点,(二叉树百度百科),示例如下图所示。深度优先遍历:深度优先遍历(Depth First Search),简称DFS,其原则是,沿着一条路径一直找到最深的那个节点,当没有子节点...原创 2018-11-01 23:00:11 · 17758 阅读 · 14 评论 -
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
在看java泛型的时候看到这篇博客,觉得讲的很好,转载了,原文地址:https://blog.csdn.net/s10461/article/details/53941091,以下是原文对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、java泛型详解1. 概述泛型在ja...转载 2019-06-15 16:50:15 · 473 阅读 · 0 评论