美文网首页
我刻意练习了很久才有那么一点自信

我刻意练习了很久才有那么一点自信

作者: 143e7673f04b | 来源:发表于2020-06-20 22:43 被阅读0次

关于算法题的做法,自己也很少去看,也很少去做,所以这里自己也是一位算法做题的"萌新",还记得大学时自己买过一本关于算法题的书,有的时候还会翻翻这本书,但是这本书留在了郑州,是的,那个临近毕业的时候自己,不需要的书籍都卖了,唯独自己喜欢的几本书没有卖,那本算法书就没有卖,因为它承载了自己大学里美好的一段时光,至少每每看到那本书自己还会去回忆一下。

关于为什么自己现在开始会去做算法题了,其实就是刚开始毕业的时候,由于找工作的原因都是面向企业级应用开发,所以自然工作比较重要,所以算法题自然放到了一边,无暇顾及,后面随着工作的深入,也基本上用不到算法,但是会用到java原有的集合,这个时候自己也分析了一些集合的源码分析文章,或许你读过我的文章就知道分析源码的文章自己基本上分析完了,所以这里就想着自己看看能不能做些算法题呢,至少自己不反感它,因为目前自己不会涉及spring这样优秀框架源码的阅读,因为它本身的特性自己也是在前段时间刚分析完,觉得还是需要沉淀一下,况且自己工作中也用不到必须要分析spring的源码的场景。

这里就开始了自己公众号算法题的内容输出了,其实前面已经写了几十道了,见前面文章的github地址进行获取,其实各个网站都有自己的提交记录,这里也是将自己编写的代码在文章中进行说明一下,这样以后可以看自己公众号里面的内容就可以了。

这里说明一下吧,由于题目的介绍自己就不在文章中进行说明了,这里以截图的方式进行说明,给与题目的连接就可以了

两数之和:https://leetcode-cn.com/problems/two-sum/

这样的方式还是比较友好,内容还是比较清晰的,以后就会以这样的风格来进行编写了。

这里提供两种解法,一种是暴力解法,另外一种就是基于HashMap做的,暴力解法也可以做,主要是时间复杂度高O(n^2),采用了HashMap主要是基于空间换时间的角度出发的,这里就不过多说明什么了,看下示例程序就可以了

package com.wpw.niuketest;
import java.util.Arrays;import java.util.HashMap;import java.util.Map;
public class TwoSumTest { public static void main(String[] args) { int[] nums = {2, 7, 11, 15}; int target = 9;// int[] result = twoSum(nums, target); int[] result = twoSumWithMap(nums, target);
Arrays.stream(result).forEach(x -> System.out.print(x + "\t")); }
public static int[] twoSum(int[] nums, int target) { int length = nums.length; final int arrayCount = 2; int[] result = new int[arrayCount]; for (int i = 0; i < length; i++) { for (int j = 1; j < length - 1; j++) { if (nums[i] + nums[j] == target) { result[0] = i; result[1] = j; return result; } } } return result; }
public static int[] twoSumWithMap(int[] nums, int target) { int length = nums.length; final int arrayCapacity = 2; int[] result = new int[arrayCapacity]; Map<Integer, Integer> hashMap = new HashMap<>(16); for (int i = 0; i < length; i++) { if (hashMap.containsKey(target - nums[i])) { result[0] = hashMap.get(target - nums[i]); result[1] = i; return result; } hashMap.put(nums[i], i); } return result; }}

这里说明一点,由于内存空间还是比较有用的,也就是在返回的数组大小时,指定大小为2,这样可以减少内存空间的分配,到这里就结束了。下面由于觉得还是HashMap这样的用法比较省时间,所以这里就提交了方法二的代码。

快乐工作,懂得生活。

相关文章

  • 我刻意练习了很久才有那么一点自信

    关于算法题的做法,自己也很少去看,也很少去做,所以这里自己也是一位算法做题的"萌新",还记得大学时自己买过一本关于...

  • 20161225 46/52【文魁大脑读书会】刻意练习

    本书说到刻意练习才有效,10000个小时定律事实上是需要在刻意练习的前提下,才能产生作用的。如果只是泛泛练习,那么...

  • 学习分享:《通往财富自由之路》12

    刻意练习提升元认知能力,我重新认识了“刻意练习” 我听过樊登老师讲《刻意练习》这本书,所以对刻意练习有一点点的了解...

  • 刻意练习

    自从学习以后,经常听大家说刻意练习这个词。 那么怎样刻意练习呢? 比方说如何让孩子更阳光自信?就这件事情展开各种维...

  • 刻意无为

    刻意无为 刻意的目的就是无为,有些人一点就会,有些人刻意练习了很久,毕生都可能做不到无为,早悟早知道自己的不足,减...

  • 练习

    练习自信 练习自己相信自己 练习技能的提升 练习刻意的训练的自信 练习微笑,练习看透事物的本质,练习看透而不说透 ...

  • 读《刻意练习》安德斯·艾利克森1

    刻意练习是混沌刻意练习小组的核心理论指导了,可是放了很久最近才拿出来看。看完之后,对之前理解的刻意练习有几点补充:...

  • 重读刻意练习笔记——在舒适区学习

    打下标题时,发现是很久没有敲键盘了。 出差一个周,复习如何学习。从刻意练习开始,每天能写一点东西,也是很好的刻意练...

  • 用黄金圈拆解刻意练习!

    天赋并不那么重要,只要通过刻意练习,普通人也可以成为某一领域的专家。--《刻意练习》 我们已经知道了刻意练习的重要...

  • 自信的刻意练习

    朋友,你自信吗?如果你不自信,你是否会羡慕别人信心满满的样子呢? 我觉得我不够自信,我很羡慕别人做事情胸有成竹,敢...

网友评论

      本文标题:我刻意练习了很久才有那么一点自信

      本文链接:https://www.haomeiwen.com/subject/bcknxktx.html