ARTS_Week01

本文实践了ARTS计划:完成了一道LeetCode算法题TwoSum,介绍了两种解决方案;回顾了一篇关于Redis在微服务架构中的应用的文章;分享了一个关于Map的技巧;最后分享了一篇关于程序员如何用技术变现的文章。

每周完成一个ARTS:

Algorithm:每周至少做一个LeetCode算法题;

Review:阅读并评论至少一篇英文技术文章;

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

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

Algorithm

LeetCode1:Two Sum

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

package leetcode_Alg;

import java.util.Arrays;
import java.util.HashMap;

public class L1_Two_Sum {

/*
 * @LittleWang
 * 01 :直接计算  
 */
	public static int[] twoSum1(int[] nums, int target) {
    		
		int[] a=new int[2];
		for(int i=0;i<nums.length;i++)
		{
			for (int j=i+1;j<nums.length;j++)
			{
			  if (nums[j]==target-nums[i])
			  {
			      a[0]=i;
			      a[1]=j;
			  }
			 }
		}
		return a;
	};
	
/*
* @LittleWang
* 02 :Map优化 
*/	
	
	public static int[] twoSum2(int[] nums, int target) {
	
		int[] a=new int[2];
		HashMap<Integer,Integer> map = new HashMap<>();
		
		for(int i=0;i<nums.length;i++)
		{
			int temp = target - nums[i];  
			if (map.containsKey(temp))
			  {
			      a[0]=map.get(temp);
			      a[1]=i;
			  } else{
		            map.put(nums[i],i);
              }
		}
		return a;
    };
    
	public static void main(String[] args){
    	int[] nums={0,1,2,4,6};
    	int target=3;
    	System.out.println(Arrays.toString(twoSum2(nums,target))); //使用数组打印Arrays.toString(a)
    }    
}

 

Review

原文链接:https://dzone.com/articles/redis-in-a-microservices-architecture

Redis in a Microservices Architecture

Redis通常被认为是一个缓存,这篇文章中作者给出了Redis 在微服务框架中与Spring Cloud 和 Spring Data一起的三个应用:

  • configuration server
  • a message broker
  • a database

 

Tip

这周分享关于Map的技巧:

java.util
public interface Map<K, V>

Map的三个特点:键值对,键唯一,键对应值唯一。

HashMap是最常用的Map。

LinkedHashMap相比于HashMap内部多维护了一个双向列表,目的就是保证输入顺序和输出顺序一致,但消耗增大。

SortedMap在Map的基础上增加了排序的功能。它要求key与key之间是可以相互比较的,通过comparator来实现排序。

NavigableMap继承于SortedMap,目前只有TreeMap和ConcurrentNavigableMap两种实现方式,本质上添加了搜索选项到接口,主要为红黑树服务。

TreeMap本质是一个红黑树,不允许key的值为null。

AbstractMap用于帮助我们实现自己的Map类的抽象类。

 

原文来源:

https://blog.youkuaiyun.com/wz249863091/article/details/77483948

https://www.cnblogs.com/lzq198754/p/5780165.html

 

Share

感觉毕业一年多一直浑浑噩噩的混日子,业务不精技术不行,然后一直在迷茫想做什么,却又什么都没有做。

这周看了耗子叔的《程序员如何用技术变现》,有两点印象深刻:

1 要去经历大多数人经历不到的,要把学习时间花在那些比较难得地方;

要懂得把宝贵的时间花在宝贵的地方,越是艰难的地方越是要深挖,可是我往往做不到,希望从ARST开始养成一种深入思考的习惯。

2 程序员是一个手艺人;

目前的岗位核心思想是技术服务于业务,所有的技术人员都是处于一种很被动的状态中,所以开始迷茫于自己的职业定位,近期感到一阵焦虑,夸张点想,长此以往自己依旧是一个垃圾菜鸟,在社会中毫无竞争力。

“程序员是个手艺人”,不是流水线上的复制粘贴的人,这样的定位一下子活了起来,不再被动的被公司改造,而是要实现独立自由的自我发展,这就需要自己不断的学习,不断的积累。

从现在开始,加油吧。

代码转载自:https://pan.quark.cn/s/9cde95ebe57a 横道图,亦称为甘特图,是一种可视化的项目管理手段,用于呈现项目的进度安排和时间框架。 在信息技术领域,特别是在项目执行与软件开发范畴内,横道图被普遍采用来监控作业、配置资源以及保障项目能按时交付。 此类图表借助水平条带图示来标示各个任务的起止时间点,使项目成员与管理者可以明确掌握项目的整体发展状况。 周期表或可指代计算机科学中的“作业调度周期表”或“资源配置周期表”。 在计算机系统中,作业调度是一项核心功能,它规定了哪个进程或线程能够在中央处理器上执行以及执行的具体时长。 周期表有助于系统管理者洞察作业的执行频率和资源使用状况,进而提升系统的运作效能和响应能力。 不仅如此,周期表也可能意指数据处理或研究中的周期性文档,如在金融分析中按期更新的市场信息文档。 在压缩文件“横道图,周期表.zip”内含的“横道图,周期表.doc”文件,很可能是对某个项目或任务管理的详尽阐述,涵盖利用横道图来制定和展示项目的时间进程,以及可能牵涉的周期性作业调度或资源配置情形。 文件或许包含以下部分:1. **项目简介**:阐述项目的目标、范畴、预期成效及参与项目的团队成员。 2. **横道图详述**:具体列出了项目中的各项任务,每个任务的启动与终止时间,以及它们之间的关联性。 横道图通常涵盖关键节点,这些节点是项目中的重要事件,象征重要阶段的实现。 3. **任务配置**:明确了每个任务的责任归属,使项目成员明晰自己的职责和截止日期。 4. **进展更新**:若文件是动态维护的,可能会记录项目的实际进展与计划进展的对比,有助于识别延误并调整计划。 5. **周期表探讨**:深入说明了周期性作业的调度,如定期的会议、报告递交、...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值