- 博客(121)
- 收藏
- 关注
原创 leetcode 62. 有多少条不同路径
题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?解题思路:方法一:动态规划。由于当前的路径数量与前一个路径数是有关系的所以采用动态规划。1.状态定义:我们定义dp[i][j]为网格i,j位置的路径数量2.状态转移方程:当前位置是由左边和上边移动而来的,因为每次只能向下或者向右移动一步。所以是dp[i-1][j]和dp[
2020-05-09 11:15:53
674
原创 SSM秒杀系统(十)jQuery实现倒计时
SSM秒杀系统(十)jQuery实现倒计时十四、倒计时模块的实现十四、倒计时模块的实现在我们查看商品详情的时候,此时我们需要用一个倒计时来显示秒杀商品距离秒杀开始时间的倒计时。实现步骤:写一个js函数remaintime,计算出当前时间和开始时间之间的时间差,并通过变量remainnoties显示在商品页面开头位置$("#remainnoties").html("相差 "+days+...
2020-05-08 16:46:14
486
原创 SSM秒杀系统(九)商品详情页添加redis缓存
该部分引入了redis缓存。为什么要使用redis缓存,我们不是已经添加了ehcache缓存吗?首先redis缓存相比于ehcache具有一定优势:集群环境下,那么每台服务器的ehcache是不同步的,这样会出问题的,ehcache只适合单机环境redis是设置单独的缓存服务器,所有集群服务器统一访问redis,不会出现缓存不同步的情况,也就是redis缓存是共享的并且redis的效率...
2020-05-07 21:03:48
819
原创 SSM秒杀系统(八)
SSM秒杀系统(八)十二、ehcache缓存该部分引入了cache缓存,来提升系统性能,提高相应速度。十二、ehcache缓存缓存(Cache)是一块为提升系统性能而开辟出来的内存空间。其主要作用是暂存数据处理结果,并提供下次访问使用。在很多场合,数据的处理或者数据获取可能非常费时,当对这个数据的请求量很大时,频繁的数据处理会消耗大量资源。缓存的作用就是将这些来之不易的数据存储起来,当再次请...
2020-05-07 20:56:53
149
原创 SSM秒杀系统(七)
SSM秒杀系统(七)十一、频道列表静态化1.频道列表静态化2.分布式定时任务该部分对秒杀主页进行了优化,秒杀活动开始前,其实就有很多用户访问该页面了。如果这个页面的一些资源,比如 CSS、JS、图片、商品详情等,都访问后端服务器提供,甚至操作数据库,服务肯定会出现不可用的情况。所以一般我们会把这个页面整体进行静态化,降低服务器的压力十一、频道列表静态化1.频道列表静态化由于我们每次访问频道...
2020-05-07 20:54:11
282
原创 SSM秒杀系统(六)
SSM秒杀系统(六)九、项目拆分十、面向服务的分布式框架dubbo10.2 Dubbo在项目中的使用方法10.3 项目启动问题该部分引入dubbo框架,对项目进行重构九、项目拆分十、面向服务的分布式框架dubbo1.pom中引入dubbo-2.8.4的jar包2.linux服务器中安装zookeeper-3.1.6,并进行配置:zookeeper存放的位置为 /usr/local/z...
2020-05-07 20:50:12
165
原创 集合、列表与数组之间的相互转换
集合、列表与数组之间的相互转换1.list与数组之间的相互转换1.1 list转换成数组1.2 数组转换成list在java编程的过程中,我们通常会遇到集合、列表与数组之间的相互转换,下面介绍下每种转换的方式。1.list与数组之间的相互转换1.1 list转换成数组使用toArray方法转换,一定是转换成引用类型的数组(integer,String),无法直接转换成基本数据类型的数组。...
2020-05-07 10:05:18
1192
原创 Redis数据库基础(一)
Redis数据库基础(一)1. 什么是redis?有什么优缺点?2.为什么要用 redis(为什么要用缓存)?3.为什么要用 Redis 而不用 map/guava 做缓存?4.redis 和 memcached 的区别5.redis 的线程模型6.redis 常见数据结构以及使用场景分析7.Redis常见性能问题和解决方案?8.`Redis 的持久化机制是什么?各自的优缺点?`9.如何选择合适的...
2020-05-06 20:52:17
382
原创 MySQL数据库(三)
MySQL数据库(三)1.关联查询例题2.子查询有哪几种情况?3.varchar与char的区别4. FLOAT和DOUBLE的区别是什么?5.drop、delete与truncate的区别6.如何定位及优化SQL语句的性能问题?创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因?7.SQL的生命周期?8.大表数据查询,怎么优化?9.mysql如何分页?10.超大分页怎么处理?1...
2020-05-06 11:55:27
873
原创 leetcode 33. 搜索旋转排序数组
leetcode 33. 搜索旋转排序数组题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。解题步骤:看到该...
2020-05-06 10:45:10
306
原创 MySQL数据库(二)
MySQL数据库(二)1.什么是事务?2.并发事务带来哪些问题?3.事务隔离级别有哪些?MySQL的默认隔离级别是?1.什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃...
2020-05-03 21:54:52
947
原创 MySQL数据库(一)
MySQL数据库1.为什么要使用数据库2.什么是SQL?什么是MySQL?3.mysql的存储引擎4.MySQL存储引擎MyISAM与InnoDB区别?5.MyISAM索引与InnoDB索引的区别?6.InnoDB引擎的4大特性7.如何选择存储引擎8.什么是索引?9.索引有哪些优缺点?10.索引使用场景11.索引有哪几种类型?12.索引算法有哪些?13.创建索引的原则14.使用索引查询一定能提高查...
2020-04-30 21:44:18
860
原创 leetcode 518. 零钱兑换 II
题目描述:给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。输入: amount = 5, coins = [1, 2, 5]输出: 4解释: 有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1解题步骤:题目就是找到所有数组中的组合使其和等于target,初步一想回溯法遍历所有的路径就能找...
2020-04-29 10:59:38
387
原创 计算机网络基础(一)
概述:计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来的,实现资源共享和数据传输的系统。网络编程就是编写程序使互联网的两个(或多个)设备(如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持。通过其提供的接口我们可以很方便地进行网络编程。1.网络体系结构通过网络发送数据是一项复杂的操作,必须仔细地协调网络的物理特性以及所发送数据的逻辑特征。...
2020-04-28 21:47:55
669
原创 SSM秒杀系统(一)
SSM秒杀系统(一)一、项目需求分析二、项目搭建三、数据库设计3.1 商品表3.2 订单表3.3 用户表3.4 商家用户表3.5 商品详情表一、项目需求分析秒杀的商品通常有两种限制:库存限制和时间限制需求分析:商家:商家申请入驻秒杀商家(创建秒杀店铺):注册商家账号店铺创建秒杀商品(添加商品):开始时间,结束时间,秒杀价格,原价格,库存等管理员:3. 秒杀商品审核用户:4....
2020-04-28 16:48:30
498
原创 SSM校园商铺平台(八)
SSM校园商铺平台(八)一、首页开发1.1 dao层1.2 service层1.3 controller层1.4 前端**二、店铺列表页的实现**2.1 dao层2.2 service层2.3 controller层2.4 前端实现三、店铺详情页的实现3.1 controller层实现3.2 效果前端展示系统的开发:对店铺信息和商品信息进行展示一、首页开发头条读取滚动播放一级类别列表的获...
2020-04-25 17:06:59
433
原创 回溯算法详解
回溯算法详解一、回溯算法框架二、全排列问题三、N皇后问题四、子集问题五、总结一、回溯算法框架解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题:路径:也就是已经做出的选择。选择列表:也就是你当前可以做的选择。结束条件:也就是到达决策树底层,无法再做选择的条件。回溯算法框架代码:result = []def backtrack(路径, 选择列表...
2020-04-25 11:17:05
2715
原创 leetcode 90. 包含重复元素数组的所有子集
题目描述:给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。解题步骤:该题目和寻找数组元素所有子集类似,只是需要加上一个去重条件。方法一:采用BFS思路:如果前后两个数不重复,就直接加入所有元素乘积,并记录下添加该元素之前的alllist长度,比如在第3行,1和2不重复,此时的需要新添加的元素长度newAddLen为 ...
2020-04-24 11:34:53
590
原创 SSM校园商铺平台(七)
SSM校园商铺平台(七)1. dao层的实现2.service层3.coontroller层4.前端实现5.效果图本章实现商品类的所有操作,和shop类似1. dao层的实现ProductDaopublic interface ProductDao { //插入商品 int insertProduct(Product product); //按productId查找商品 Pr...
2020-04-23 15:15:52
242
原创 leetcode 113.路径总和为target的所有路径
题目描述:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。解题步骤:方法一:采用迭代遍历的方式,通过栈数据结构,和leetcode 112.判断树中是否存在target的路径和 类似,所以就不写了方法二:采用递归的方式,用List来保存中间的节点,方法比较简单,但是时间复杂度较高代码: public Li...
2020-04-22 15:21:14
475
原创 leetcode 257. 遍历二叉树的所有路径
题目描述:给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。解题步骤:方法一:采用栈数据结构,先添加右子节点再添加左子节点。记录下当前节点和路径 public List<String> binaryTreePaths(TreeNode root) { Stack<TreeNode> node = new...
2020-04-22 11:35:38
1097
原创 leetcode 112.判断树中是否存在target的路径和
题目描述:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。解题步骤:方法一:采用栈数据结构,来依次遍历每个节点,并保持每条路径的总和代码: public boolean hasPathSum(TreeNode root, int sum) { if(root==null) ret...
2020-04-22 11:22:36
466
原创 leetcode 111. 二叉树的最小深度
题目描述:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。解题步骤:解法一:按照最初的想法,还是可以用宽搜BFS的方法来解决。(1)创建一个队列用来保存每一层的节点(2)如果遍历到当前节点的左右子节点都为空,返回当前的层数,就是二叉树的最小深度代码: public int minDepth(Tr...
2020-04-21 12:11:56
370
1
原创 SSM校园商铺平台(六)
SSM校园商铺平台(六)1. dao层实现2. service层的实现3. controller层的实现4.前端实现本节实现商品类别管理1. dao层实现public interface ProductCategoryDao { //根据ProductCategory输入的条件查询所有的商品种类 List<ProductCategory> queryProductCateg...
2020-04-20 19:54:59
355
原创 SSM校园商铺平台(五)
SSM校园商铺平台(五)1.店铺信息编辑功能的实现1.1 dao层实现1.2 service层的实现1.3 controller层的实现1.4 前端实现1.店铺信息编辑功能的实现实现单个店铺的信息获取实现对店铺信息进行修改1.1 dao层实现在shopDao接口添加方法: // 通过id查询店铺 Shop queryByShopId(long shopId);在mapper中...
2020-04-19 20:42:38
381
原创 leetcode 11. 盛最多水的容器
题目描述:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。输入:[1,8,6,2,5,4,8,3,7]输出:49解题步骤:该题目可以采用双指针...
2020-04-19 11:28:43
344
原创 leetcode 25. K 个一组翻转链表
题目描述:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->...
2020-04-19 11:09:52
252
原创 leetcode 92. 反转链表 II
题目描述:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL解题步骤:定位到要反转部分的头节点 2,head = 2;前驱结点 1,pre = 1;当前节点...
2020-04-19 10:30:43
308
原创 SSM校园商铺平台(三)
SSM校园商铺平台(三)1.从后台获取店铺类别和区域信息1.1 dao层1.2 service层1.3 controller层1.从后台获取店铺类别和区域信息1.1 dao层如果传入的对象不为空,实例化对象,我们就显示所有的子类别,注意:最顶层父类别不会显示,最顶层父类别指的是parent_id为空如果传入参数的parent,也就是父类别为空,就返回所有的ShopCategory;如果...
2020-04-17 22:15:50
386
原创 lectcode 287. 寻找重复数
题目描述:给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组中只有一个重复的数字,但它可能不止重复出现一次。解题步骤:该题要求可时间复杂度和空间复杂度,初...
2020-04-17 11:34:30
376
原创 leetcode 448. 找到所有数组中消失的数字
题目描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。解题步骤:由于要求不能使用额外空间并且时间复杂度为O(n),所以不能采用HashSet...
2020-04-17 11:03:19
170
原创 SSM校园商铺平台(二)
SSM校园商铺平台(二)1. Logback日志记录1.1 主要模块1.2 主要标签1.3使用logback2.店铺模块2.1 新增店铺(店铺注册)2.2 测试输出3. 图片处理和封装Util3.1 使用thumbnailator进行图片处理3.2 封装工具类4.添加店铺返回类型(用在service层)4.1 在dto包创建ShopExecution类4.2在enum包下创建ShopStateEn...
2020-04-16 17:09:32
585
1
原创 leetcode 19. 删除链表的倒数第N个节点
题目描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.解题步骤:该题既要找打倒数第n个节点,又要删除该节点,采用快慢指针法。(1)快慢指针都指向head(2)快指针向前移动n-1个节点,如果快指针出现n...
2020-04-15 11:11:43
411
原创 leetcode 32. 最长有效括号
题目描述:给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”解题步骤:该题首先先到可以采用动态规划求解。除此之外,还可以使用堆栈法来求解,通过栈数据结构来保存数据。(1)栈stack保存字符(2)栈pos保存字符在字符串中的索引位置(3)当字符加入到stack时,索引位置也加...
2020-04-15 10:47:35
416
原创 leetcode844. 比较含退格的字符串
题目描述:给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。解题步骤:采用栈数据结构来解题,如果栈为空,直接将字符放进栈中,如果当前字符为 # ,则弹出栈顶元素代码: public boolean backspaceCompare(String S, String T) { return ret(S...
2020-04-15 10:17:19
418
原创 leetcode 28 实现 strStr()
leetcode 28. 实现strStr题目描述:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。输入: haystack = “hello”, needle = “ll”输出: 2解题步骤:这就是典型的字符串匹配的KMP算法。解题步骤如图所示:...
2020-04-15 10:10:57
319
原创 leetcode 1.多个数之和
leetcode 多个数之和1.两数之和1.两数之和题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 +...
2020-04-15 10:09:50
733
原创 SSM校园商铺平台(一)
SSM校园商铺平台(一)1.系统功能模块1.1 前端1.2 店铺管理系统1.3 超级管理员系统2.实体类分析2.1 区域类2.2 用户类2.3 微信账号和本地账号2.4 头条类2.5 店铺类别2.6 店铺类2.7 商品类别类2.8 详情图片类2.9 商品类3.表之间的关系4.maven项目结构5. 项目配置6.验证配置的ssm是否正确6.1 验证dao6.2 service测试6.3 contro...
2020-04-13 17:14:35
1497
原创 leetcode 713. 乘积小于K的子数组
题目描述:给定一个正整数数组 nums。找出该数组内乘积小于 k 的连续的子数组的个数。输入: nums = [10,5,2,6], k = 100输出: 8解释: 8个乘积小于100的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于100的子数组。解题步骤:该题可以...
2020-04-12 16:10:04
459
原创 八种常见的排序算法
1. 算法复杂度计算2.1 首先看时间复杂度:想要了解时间复杂度,就需要先了解时间频度。一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。接下来就引入了时间复杂度的概念。看一下比较官方的定义吧:一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数...
2020-04-10 20:21:29
1017
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅