- 博客(20)
- 收藏
- 关注
原创 字符串转换整数 (atoi)
具体来说,小于 −2^31 的整数应该被舍入为 −2^31 ,大于 2^31 − 1 的整数应该被舍入为 2^31 − 1。第 2 步:"1337c0d3"(当前没有读入字符,因为这里不存在 '-' 或者 '+')s 由英文字母(大写和小写)、数字(0-9)、' '、'+'、'-' 和 '.' 组成。第 2 步:"0-1" (当前没有读入字符,因为这里不存在 '-' 或者 '+')第 3 步:"0-1" (读入 "0";第 2 步:"42"(当前没有读入字符,因为这里不存在 '-' 或者 '+')
2024-07-24 16:37:06
768
原创 验证回文串
直接使用双指针,然后比较两个指针所指向的字符是否相等。只是其中有很多其他的条件,那么就不断的通过if过滤掉不符合条件的字符,然后再比较。
2024-07-22 11:09:54
242
原创 数据结构与算法设计:整数反转
此题并不困难。若有难度,主要集中在如何保证旋转后的值在[-2^31,2^31-1]内,因为如果处理不好,就很容易使result超过int类型值的范围,而得到错误结果。
2024-07-15 16:45:27
327
原创 数据结构与算法:旋转图像
本题难度不大,如果熟悉线性代数,基本上可以快速的找到思路。如果没有线性代数基础,也可以找到第三种方式来解决。对线性代数掌握越多,越有利于解决算法相关的问题。
2024-07-05 17:56:10
288
原创 有效的数独
本题就在于思路的转换。最普通的想法就是在检查每行,每列和每个3*3时进行轮询。这样做的时间复杂度是非常大的,即使只检查一行,也要循环81次。但如果采用上面的思想,把所有行检查完,也才循环81次。综上,本题并不复杂,多做题后,自然就会有这种思路。
2024-07-02 15:59:39
756
原创 数据结构与算法:两数之和
以上代码是官方提供的算法。本题花费了很多时间,如果用暴力运算是非常简单的,但是时间复杂度是O(n^2)。为了优化时间复杂度,是花费了很多时间的,最终都还是参考了官方算法才明白怎样优化。如果要想彻底弄清楚,必须要精通数据结构的hash算法。
2024-06-27 16:35:32
376
原创 数据结构与算法:移动0
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]输入: nums = [0]
2024-06-25 11:49:44
213
原创 二分查找递归解法(java)
注意:数组必须是升序或降序,反正必须是有序的,这里用到是升序(降序的原理一样)一、用递归解决问题分为三个步骤:(1)重复:用需要查找的数(key)与分支中点(mid)对应的数(arr[mid])比较大小,确定下一个分 支;(2)找变化:分支不同,即分支的起点(low)、分支的终点(high)、支中点(mid)不同;(3)找边界(边界条件是确定退出递归的关键):当在分支中找到key时,返回key所在位置; 当没有找到k...
2022-03-26 20:36:19
2954
原创 汉诺塔游戏
1.问题:有三根相邻的柱子,标号为A,B,C。A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘。现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方。为了方便说明,这里取n=3。2.如图 根据题目,目的是把A上的盘子按照一定规则移动到B盘上,C柱只是一个辅助。在这里我们统一规定:资源地(A柱)、目的地(B柱)、C(辅助的柱子)。...
2022-03-17 23:26:59
3661
原创 Java中的GregorianCalendar日期类
简介:Calendar类是一个抽象类,提供计算日期的常见相关方法,而GregorianCalendar是它的一个具体子类,提供了世界上大多数地区使用的标准日历系统。注意:Java中月份是从0开始,即0表示1月;周日是数字1,以此类推;常用方法:方法 说明 new GregprianCalendar(年,月,日,时,分,秒) 可以没有任何参数或部分参数,通过后面的方法进行设置
2022-03-02 22:32:45
2590
原创 常用进制转换
常用进制二进制以2为基数,只有两个符号0和1,常用于数字电路和现代计算机以及依赖于计算机的设备里。八进制以8为基数,采用0,1,2,3,4,5,6,7八个数字,逢八进1,常用于计算机语言中,像Java中通常用以O开头的数字表示8进制数。十进制以10为基数,采用0~9这十个数字,逢10进1,常用于现在人们的生活中。十六进制以16为基数,逢16进1,采用0~9,A(a),B(b),C(c),D(d),E(e),F(f)来表示0~15这16个数字,常用于现代计算机语言中,...
2022-03-02 21:40:55
2645
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人