1 Botto__Mmmm

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 12w+

字典树基本实现及特性

字典树 Trie又称单词查找树或者键树,是一种树形结构。典型应用是用于统计和排序大量的字符串(不仅限于字符串),经常被搜索系统用于文本词频统计它的优点是:最大限度的减少无谓的字符串比较,查询效率比哈希表高。基本性质结点本身不存完整单词从根结点到某一结点,路径上经过的字符连接起来,为该结点所对应的字符串每个结点所有的子结点路劲代表的字符都不同核心思想Trie树核心思想为空间换时间利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。字典树的Java实现...

2020-08-08 13:40:49

LeetCode 198 打家劫舍

题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,7,9

2020-08-05 17:24:06

LeetCode 322 零钱兑换

题目给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1思路 动态规划,自底向上首先,如何去考虑动态规划,怎么将这个问题拆分为重复的子问题然后,定义dp状态方程dp[i

2020-08-04 20:07:40

LeetCode 120 三角形最小路径和

题目给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。思路一 暴力搜索对于一个位置来说,它的最小路径和 就是 自身加上 它所选择俩边中的最小路径。这样可以 写出递归搜索c

2020-08-02 03:41:32

数据库连接池

Java连接数据库时,需要构建连接,执行操作,最后释放连接。但是如果在执行操作上非常简便,那么构建连接和释放连接非常的损耗性能Connection是Java和数据库俩个平行系统的桥梁桥梁构建不易,成本很高,单次使用成本贵昂贵运用共享技术来实现数据库连接池(享元模式)– 降低系统中数据库连接Connection对象数量– 降低数据库服务器的连接响应消耗– 提高Connection获取的响应速度享元模式经典23个设计模式的一种,属于结构型模式一个系统存在大量相同的对象(由于这类对象的大量

2020-08-01 23:23:20

JDBC 高级操作

事务数据库事务:Database Transaction作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全不执行事务,必须满足所谓的ACID(原子性,一致性,隔离性,持久性)事务是数据库运行中的逻辑工作单位,由DBMS中事务管理子系统负责事务的处理JDBC事务关闭自动提交,实现多语句同一事务connettion.setAutoCommit(false);connection.commit();提交事务connection.rollback();回滚事务保存点机制– co

2020-08-01 00:15:43

数据库 和JDBC基本操作

数据库DB:Database存放数据的库数据:规范,半规范,不规范数据数据安全 重要DB(文件集合,类似.dox,.doxc文件),而操纵和管理数据库的软件,用来建立,使用,和维护数据库 叫做DBMS(Database Management System)DB种类文本文件/二进制文件xls文件(表格文件)AccessMysql(免费,多平台)SQL ServerOracle/DB2SQLite(手机使用)表数据库里面最基础的一个元素表:table– 列:列,属性,

2020-07-31 22:54:08

Java 邮件 Mail编程

邮件使用Web 邮件管理界面邮件客户端软件(Outlook/Foxmail等)邮件客户端邮件服务端– 发送邮件服务器– 接收邮件服务器主要协议(发送端口25,接收端口110)邮件中继:通过别人的邮件服务器,将你的邮件系统的送到目标地址Java Mail程序通过Java Maik的API能够联系上邮件服务器,进行邮件的收发操作– 需要邮件服务器的支持,需要知道pop服务器和smtp服务器信息Java Mail工具包javax.mail包 和jzvzx.mail.inte

2020-07-30 22:53:23

LeetCode 1143 最长公共子序列

题目给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。示例 1:输入:text1 = "abcde", text2 = "

2020-07-29 18:13:10

LeetCode 63 不同路径二

题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?思路 动态规划和前面62题思路一样,就是需要加一个判断的条件是否有障碍物class Solution { public int uniquePathsWithObstacles(int[][] obstacleGrid) {

2020-07-28 14:52:03

LeetCode 62 不同路径

题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?思路 动态规划动态规划,寻找状态转移方程,就是递推公式。找到重复的最近子问题需要存储中间结果这个题目的话,类似斐波拉契数,自底向上的进行思考递归。当前格子到终点的路线个数,等于下面和右边格子路线个数相加这样,可以直接递归,然后很多格子是重复计算的,所以用一个二维数组,存储计算

2020-07-28 13:21:46

Java AIO 通讯编程

AIO通讯异步非阻塞的通讯方式,就是不需要等待一方的数据操作完成,会自动执行回调函数处理的读写操作主要类– AsynchronousServerSocketChannel 服务器接收请求通道bind 绑定在某一端口 accept 接收客户端请求– AsynchronousSocketChannel Socket 通讯通道read write– CompletionHandler 异步处理类completed 操作完成后异步调用方法 failed 操作失败后异步调用方法package

2020-07-27 20:30:45

Java NIO 编程

BIO编程传统的TCP和UDP编程通讯:Blocking I/O一方在写入或读 数据时过慢,另一方需要等待NIO编程,同步非阻塞Non-Blocking I/O提供非阻塞通讯等方式避免同步I/O通讯效率过低一个线程可以管理多个连接减少线程多的压力JDK1.4引入,1.7升级为NIO2.0(包括AIO)主要在java.nio包中主要类– Buffer 缓冲区– Channel 通道– Selector 多路选择器Selector 在这里就选择的作用,哪一个数据通道有响应

2020-07-27 20:10:09

LeetCode 33 搜索旋转排序数组

题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例 2:输入: nums = [4,5,6,7,0,1,2], targ

2020-07-26 01:59:18

基本数据类型及转型

基本数据类型1、整数型:byte (1字节) short(2字节) int(4字节) long(8字节)2、浮点型:float(4字节) double(8字节)3、字符型:char(2字节)4、布尔型:boolean(1字节)转型boolean类型不参与自动类型转换,把范围小的数据可以直接转为 范围大的数据例如: int a = 10; double b = a;强制类型转换,把范围大的数据 放到范围小的数据中,不用标记会报错double b = 10.1;int

2020-07-24 23:49:06

367 有效的完全平方数

题目给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。示例 1:输入:16输出:True示例 2:输入:14输出:False思路一 二分查找设置上下界,然后进行判断class Solution { public boolean isPerfectSquare(int num) { if (num == 1) return true; int l = 2, r = num;

2020-07-24 16:18:39

LeetCode 69 X的平方根

题目实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。思路一,二分查找使用二分查找,首先明白二分查找的条件目标函数需要单调性有确定是上下界可以通过索引访问这个题目可以在 1~X的范围中去寻找这个x的平方根。代码来官方题解

2020-07-24 14:56:13

LeetCode 55 跳跃游戏

题目给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。思路一设置一个

2020-07-20 01:22:15

LeetCode 122买卖股票的最佳时机Ⅱ

题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(

2020-07-19 23:54:39

Java HTTP编程

网页访问网页是特殊

2020-07-19 14:56:58

查看更多

勋章 我的勋章
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。