点击上方 Java学习之道,选择 设为星标

每天18:30点,干货准时奉上!

Part1力扣

刷力扣,刷力扣,力扣究竟是什么呢?

力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷,力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长。

而刷力扣也就是在力扣的题库里刷算法题。

Part2力扣启蒙

下面来引入力扣的启蒙题来感受一下算法题的魅力吧。

1力扣第一题:

两数之和

给定一个整数数组 nums 和一个整数目标值  target,请你在该数组中找出 和为目标值 的那 两个整数,并返回它们的 数组下标

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

2解题思路

  • 暴力解法

很多人新手看到这些题目,第一眼就是暴力跑法对吧? 但是都来练算法了暴力破解不是在真的没办法的情况下就算了。

  • 哈希映射

让我们来看看这道题比较优等的解法吧 (算法只有更好,没有最好)

什么是哈希映射

哈希表的结构就是键值对的形式 >> [key -- value] 我们可以利用这个特殊的数据结构来处理我们这道题目

先来看看 Java的 HashMap API 中一个 方法.

方法要求传入一个键,会返回在该哈希表中是否存在跟传入的键对应的映射关系. 也就是说我们可以将没有找的数组元素放进哈希表中,让后面的元素去匹配。

利用for循环来处理题目给出的数组,题目给出了一个 target, 我们就利用这个 target 和 数组中的数字相减来得到一个目标值,然后在哈希表中查找是否有这个值,有则可以找到题目所要的两个目标索引,没有找到的话就将值再 put 进表中。

题解

public int[] twoSum(int[] nums, int target) {/* map的键为数组的元素 值为数组的元素下标 */Map<Integer,Integer> map = new HashMap<>();/* 循环数组 */for (int i = 0; i < nums.length; i++) {if (map.containsKey(target - nums[i])){return new int[]{map.get(target - nums[i]),i};}/* 遍历开始时为空表,就直接将第一个元素put进表 *//* 没有找到对应的映射就进行put */map.put(nums[i], i);}/* 数组中没有符合的两个数字的情况,但是题目已经帮我们排除了这个可能性 */return null;}

测试结果

该测试结果是在IDEA中通过 leetcode 插件自动生成题目提交测试代码的,不会使用 leetcode插件的也可以通过 [刷leetcode神器] IDEA 插件 leetcode editor 查看。

-- END --

力扣启蒙 - 开启算法的世界相关推荐

  1. LeetCode(力扣)初级算法 字符串篇

    目录 1.反转字符串 2.整数反转 2.1第一版代码 2.2第二版代码 3.字符串中的第一个唯一字符 3.1第一版代码 3.2第二版代码 3.3第三版代码 4.有效的字母异位词 4.1第一版代码 4. ...

  2. C#实现力扣双周赛算法题:以组为单位订音乐会的门票订购

    目录: 前言: 一,算法题目描述 二,基本概念理解: 三,例子引入分析 四,代码解释 (1)安排座位函数 (2)查询函数 (2)求出1到RPS内的最小下标 (3)gather函数 (4)scatter ...

  3. 力扣中国(LeetCode) 算法题 有效独数(python)

    判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 ...

  4. 力扣网---贪心算法(JAVA实现)---中等(一)

    分类记录力扣网刷题的笔记.也算对自己的督促. 目录 55,跳跃游戏 134,加油站 376,摆动序列 406,根据身高重建队列 452,用最少数量的箭引爆气球 649,Dota参议院 861.翻转矩阵 ...

  5. 力扣LeetCode经典算法 礼物的最大价值

    数据结构(五十一) 学习数据结构与算法过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流. -- 礼物的最大价值 -- 1.题目描述 在一个 m*n 的棋盘的每一格都放有一个礼 ...

  6. ❤️力扣线性枚举算法第二题数组中连续为一的最大个数

    添加链接描述484最大连续一的个数 class Solution {public int findMaxConsecutiveOnes(int[] nums) {int count =0;int in ...

  7. 教你创建电脑、手机同步的markdown云笔记--力扣刷题力荐!

    开篇先致歉 其他不谈,开篇必须先给各位读者道个歉,年后工作上比较忙,加上最近闲暇的时间都用来在力扣上刷算法题了,导致公众号断更有些严重啊.再加上年后将健身减重提上了日程,时间上就更显的捉襟见肘了. 不 ...

  8. 力扣121题买卖股票的最佳时机 简单容易明白

    博主最近在力扣上做算法题,一天一道,可以跟着我来练习,有啥不会的可以留言,或者不理解力扣上面哪道可以进行留言.有啥不会的题也可以留言,仅限于简单与中等难度的. 愿我们变的越来越好 有啥不明白的评论区留 ...

  9. LeetCode -- 力扣算法题解题心得 -- (个人笔记记录)持续更新~~

    一.前言 正式开启数据结构+算法研究的历程,准备好一年后的面试.下面的解法不一定是最优解,只求能力提升,会定期更新~~ 二.目录 1 2 19 20 21 24 35 42 83 86 94 96 1 ...

最新文章

  1. 未获得计算机访问权限,如何获取文件夹的访问权限
  2. Hibernate配置文件解释
  3. Python图像处理库PIL -- 学习资源
  4. 数据中心成“香饽饽”:阿里云未来再投2000亿,板块内掀起涨停潮
  5. Unet项目解析(7): 模型编译-优化函数、损失函数、指标列表
  6. 计算机操作系统(1):OS的作用和目标
  7. python获取请求中的参数_python – 在Tastypie中获取请求参数
  8. 测试上路2年,你处于什么阶段了?不醒着拼,你连应届生都比不过...
  9. Hash冲突的解决方式
  10. 为什么成为CISSP持证专家?
  11. JAVA打卡记录计算时间
  12. 阿里巴巴icon图标尽在掌握(前端如何引入icon库,美丽图标随你处置T.T)
  13. cpu发热测试软件,如何检测CPU的温度?这些软件少不了
  14. [LTE 资源分配方法]资源池 resource pools
  15. 路由器下一跳地址怎么判断_一篇文章,了解清楚路由器的各种组网
  16. html语言超链接提示,HTML超链接
  17. C#控制台程序套壳打开EXCEL并强制启用宏
  18. 主机window7 64位 虚拟机下安装Ubuntu系统如何实现网络共享ixi
  19. mysql client_multi_statements_MySQL中CLIENT_MULTI_STATEMENTS的用法
  20. 国产手机已经用上了 120W 快充技术,苹果还在用20W的原因

热门文章

  1. LeetCode 810 Chalkboard XOR Game【思维】
  2. 什么是产品经理?主要职责是什么?
  3. STM32F429第二十八篇之ADC
  4. MQ的几个常见面试问题
  5. python xlrd读取文件报错_python利用xlrd读取excel文件始终报错原因
  6. 计算机辅助设计对提升产品质量,浅谈CAD技术与计算机辅助设计的应用
  7. ECharts绘制饼图
  8. embarrass的用法和搭配_求embarrass和它对应的形容词的相关用法
  9. 让你的「文件传输助手」歇一歇吧,你完全有更实用的备忘录工具选择
  10. 蒲丰投针问题的matlab仿真