Java后端
·05-08 23:47Day 102(5.6/5.7/5.8)
✅ 今天做了:
1. 力扣136,只出现一次的数字
2. 复习Mysql八股
3. 整理《万能视频总结器》项目开发文档:https://www.codefather.cn/post/2051997576365887489
4. 复习Java八股
5. 编写codefreex项目设计文档
6. 完成codefreex项目基本架构的搭建,基础用户服务,兑换码以及邀请码功能
⏰ 明天计划:
1. 完成codefreex项目核心AI生成功能
📚 今日感悟:
力扣136,只出现一次的数字
1. 我的思路1:使用set集合,如果当前该数未存在set中,则加入集合,否则将该数从集合中移除,最后set集合中剩余的那个数即为目标值
`时间复杂度O(n),空间复杂度O(n)`
2. 我的思路2:对元素进行排序,然后从前往后进行遍历,如果前一个不等于后一个,这个数就是目标值
`时间复杂度O(nlogn),空间复杂度O(logn)`
3. 思路3:使用位运算,异或运算有如下性质:1)任何数和0做异或,结果仍是原来的数;2)和其自身做异或,结果是0;3)异或运算满足交换律和结合律。运用这三条性质可以将一个初始值为0的数依次与数组中元素进行异或运算,最终的结果就是只出现一次的数字
`时间复杂度O(n),空间复杂度O(1)`
3
2
分享
操作
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
