首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
算法
订阅
PlayInJava
更多收藏集
微信扫码分享
微信
新浪微博
QQ
7篇文章 · 0订阅
Java数据结构与算法--递归和回溯
将第n个圆盘从源柱移到目的柱。 圆柱最上面的n-1个圆盘移动到辅助柱又可以看成一个新问题,然后以同样的方式解决。 给定一个数组,用递归方法判定数组中的元素是否是有序的。 生成所有n位长的字符串。假设A[0..n-1]是一个大小为n的数组。
LeetCode--1. 两数之和
用return new int[]{i,j}省去了好几行代码。 用throw new RuntimeException();解决没有返回值报错的问题。 暴力法思想很简单,但是时间复杂度高(O(n²)),空间复杂度(O(1))。 看来,我们需要处理第一个数,如果map中不提前放第…
LeetCode--7. 反转整数
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。 1. 末位数求法 取个位数或者最后一位数的方法:通过int remainder = x % 10;取得最后一位数,然后数本身x /= 10…
LeetCode--9. 回文数
上面代码虽然满分通过,但是还有许多需要改进的部分。 算法不是最优,可以将x分为两半,反转后半部分,然后直接和前半部分做比较即可。 为了将x分为两半,请注意while的条件是x>temp,但是这样会出问题的,比如x=121,会出现x=1,temp=12;那return x ==t…
LeetCode--13. 罗马数字转整数
应该比较相邻的两位数的大小关系。 应该关注是否是最后一位数,如果是最后一位数,后面就没有数可比,直接相加。 没有将chars[i]进行转型,"I"和'I'比较返回false。map直接定义成<Character,Integer>更好。 需要关注相邻两元素值来做解答时,一定要关注…
LeetCode--14. 最长公共前缀
说明没有判断空数组。 说明没有考虑后面字符串长度小于前面的情况,所以添加判断如果当前字符串的长度等于i,则返回0到i的数据:str.length()== i,当然,这个判断需要加载char比较之前,因为一旦字符长度不够,编译就会报错下标越界。 像这种比较数据间相同元素的多少,我…
LeetCode--20. 有效的括号
分析题目很明显是栈问题,所以如何利用好push和pop是一个技术突破口。