笔记:今日题目总结 & Java 常用方法整理

✨ 今日题目总结

今天做的题目大多量采用 暴力枚举 解决,但是暴力解法有 时间复杂度过高、可能溢出 等问题,需要优化:

题目你的解法存在的问题可能的优化方案
好数计数举一个 1~N 判断O(N logN) 复杂度过高预计算、数位 DP
浮点数转 R 格式Math.round(d * 2^n)Math 方法用错、可能精度丢失使用 BigDecimal
宝石组合最优 S 值三重循环 O(N³)超时 + 溢出先排序+剪枝减少循环、预计算 LCM

💡 Java 常用方法 & 工具库

Java 里已经有很多内置方法,避免重复造轮子!

📈 1. 数学计算

功能方法
四舍五入Math.round(x)
向上取整Math.ceil(x)
向下取整Math.floor(x)
绝对值Math.abs(x)
应用正数 a^bMath.pow(a, b)
最大公系数 (GCD)BigInteger.valueOf(a).gcd(BigInteger.valueOf(b))
最小公倍数 (LCM)a / gcd(a, b) * b
取最大最小值Math.max(a, b)Math.min(a, b)

📝 2. 数字转换

功能方法
字符串转整数Integer.parseInt(s)
字符串转长整型Long.parseLong(s)
字符串转浮点数Double.parseDouble(s)
整数转字符串String.valueOf(x)
浮点数保留 n 位String.format("%.nf", x)
大数处理BigInteger / BigDecimal

🌐 3. 字符串处理

功能方法
求字符串长度s.length()
字符串拼接s1 + s2StringBuilder.append()
截取字符串s.substring(start, end)
查找字符位置s.indexOf('x')
替换字符/子串s.replace('a', 'b')s.replaceAll("ab", "cd")
分割字符串s.split(" ")
去除首尾空格s.trim()
字符串转小写/大写s.toLowerCase()s.toUpperCase()
判断是否包含子串s.contains("abc")
字符串倒序new StringBuilder(s).reverse().toString()

🔍 总结

  1. 多用 Java 内置方法 (数学/字符串/集合),减少 手写暴力代码
  2. 优化暴力枚举方法 (如排序+剪枝、预计算 LCM)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值