20181101 ARTS(3)

what?什么是ARTS

  • Algorithm:每周至少做一个leetcode的算法题;
  • Review:阅读并点评至少一篇英文技术文章;
  • Tip/Techni:学习至少一个技术技巧;
  • Share:分享一篇有观点和思考的技术文章;

Algorithm 每周至少做一个leetcode的算法题

两数之和

详细可以看链接:https://leetcode-cn.com/problems/two-sum/description/

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]

以下是我的解答:

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] result = new int[2];
        int length = nums.length;
        for (int i = 0; i < length; i++) {
            for (int j = (i + 1); j < length; j++) {
                int temp = nums[i] + nums[j];
                if (temp == target) {
                    result[0] = i;
                    result[1] = j;
                    return result;
                }
            }
        }
        return result;
    }
}

可惜我的解答不是很好,只能算是解决这个问题,但是结果不是算好的,还有很大的优化的空间。 这里的优化的思路就是用哈希表(散列表)这个数据结构。 把数组中的值(nums[index])作为key,下标(index)作为value,这样在每次获取一个值的时候,去算(target-nums[i])这个值是否散列表中。这题很经典,有很好的解答思路,具体的可以做完题之后看解答的思路,如果没有去做题的话,单单看这个消化也是不容易。

Review 阅读并点评至少一篇英文技术文章

MicroServices And Jars

这周读的是篇老文章 2014年的关于的微服务的文章,当时微服务不像现在这么火,现在因为出现了像SpringBoot这样的框架,让开发人员更加方便的搭建微服务,因为方便实行,自然而然这个思想就深入人心了。这 篇文章里面写了一些关于微服务的简单的思考,作者通过一些搜索研究,把微服务的优点梳理了一下,各个系统间靠着REST互相通信,独立部署,就算一个系统挂了,不会影响别的系统的运行,想办法重启就好,你可以用自己喜欢的语言,用自己的数据库,只要你把别的系统想要的数据正常返回给他们就好,简而言之就是自由。但是作者在最后也提出了一思考:(有点没明白,这里直接贴出来吧)

Don’t leap into microservices just because it sounds cool. Segregate the system into jars using a plugin architecture first. If that’s not sufficient, then consider introducing service boundaries at strategic points.

Tip/Techni:学习至少一个技术技巧;

这周主要关于算法的,写了些二分查找的一些代码,看《图解算法》来个轻松的开始。

Share:分享一篇有观点和思考的技术文章;

Go语言的线程和Java语言的线程

这篇文章讲了为啥在程序里你可以建100万个的Go的线程,但是只能建1000个Java线程。(数字范围不准确,就是个大概的级别) 简而言之和内存的占用有关系,具体的可以自己看看。 在Java语言即将开始收费的时候,多学习一门语言不是坏事,Android的官方语言都不再是Java了,我们是不是也要在空闲时间来拥抱新的语言了呢?

转载于:https://my.oschina.net/jamesfuxk/blog/2371257

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值