首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
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是一个技术突破口。