| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【透过算法了解编程】之两数之和 -> 正文阅读 |
|
[数据结构与算法]【透过算法了解编程】之两数之和 |
介绍:大家好,我是猿码叔叔,很高兴又和大家见面了。 细数进入 Java 领域这几年,可谓一波三折,体会过求职与加班的心酸之后,也渐渐的开始学会将行业与自身职业素养联系起来,去思考如何做自己的职业规划。 技术似乎永远也是一个解不开的谜底,无论你怎么赴汤蹈火,最终都只有一个归宿,那就是家庭。所以啰嗦一句,我们学习技术,热爱技术最终都是为了有一个好的家庭。 正题:今天要写的算法是力扣中的第一道题《两数之和》。 难度:容易 题目内容:
题目来源:力扣 💡分析:根据题意,假设: 则有? 因此,最简单的办法就是全局搜索。我们分别创建 2 个 ? ?我们先用简单的方式实现一下,代码如下:
时间复杂度: 空间复杂度: 💡 思考这道题,很容易引人思考的一点是,当我们假设 假设: 为了降低时间复杂度,我们必须尽可能少的去对 nums 进行全局搜索。而且我们知道, 设数组: 下面是代码实现:
时间复杂度: 空间复杂度:
大家可以尝试自己去用 HashMap 实现,与写法 2 差不多。 🎓 总结:这道题,可以很好的作为理解 hash?实现原理的辅助,同时也颠覆我们对数组查询效率较低的认知,也渗透出算法为解决诸多难题要面对的最大困难之一 —— 搜索。比如 Elasticsearch就用到了 D-Gap 索引算法,来压缩文档编号,达到空间压缩的作用。可能这些效率上的提升是细微的,但对于庞大的数据量来说,足够了。算法之所以区别于一般的程序,我个人认为它更多的是以效率为导向,来快速解决问题。 学习点:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/23 10:39:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |