Arts打卡第5周
Algorithm。主要是为了编程训练和学习。 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。 进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。 关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell。
Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。 所以,需要你阅读并点评至少一篇英文技术文章, 我最喜欢去的地方是http://Medium.com(需要梯子) 以及各个公司的技术blog,如Netflix的。
Tip:主要是为了总结和归纳你在是常工作中所遇到的知识点。 学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。
Share:主要是为了建立你的影响力,能够输出价值观。 分享一篇有观点和思考的技术文章。
Algorithm:
求两个数的交集:
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
说明:
- 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
- 我们可以不考虑输出结果的顺序。
进阶:
- 如果给定的数组已经排好序呢?你将如何优化你的算法?
- 如果 nums1 的大小比 nums2 小很多,哪种方法更优?
- 如果 nums2 的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
long start = System.currentTimeMillis();
int len1=nums1.length;
int len2=nums2.length;
boolean[] bl=new boolean[len2];
ArrayList<Integer> al=new ArrayList<Integer>();
for(int i=0;i<len1;i++) {
for(int j=0;j<len2;j++) {
if(nums1[i]==nums2[j] && bl[j]==false) {
al.add(nums1[i]);
bl[j]=true;
break;
}
}
}
int[] in = new int[al.size()];
int e=0;
for(int i:al)
in[e++] = i; long end = System.currentTimeMillis();
System.out.println(end-start);
return in; }
}
知识点:Boolean b1 = new Boolean[5] 里面的元素默认都是false。
Review:https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#webflux-new-framework
这篇是spring react-core 的介绍,介绍了httpHandler webHandler exception filter 等。
Tip:BigDecimal 进行计算时,如果传入null会报空指针异常。因此可以在,字段类型的BigDecimal 字段 get 方法改写为,
return aaa == null ? new BigDecimal(0) :aaa; aaa 是自己定义的一个字段,这样从数据库接收不到值时,就会返回0,而不是null。
BigDecimal 类型的数字去负数可以调用它的 negate()方法。
Share:
上面是 Java团长公众号发布的关于什么是并发的介绍,以及应对方法:
知识点:
1 方法内的变量是成员变量,是放在栈内存中的。方法外的变量也就是,类的成员变量是 放在堆内存中的。
2 方法内的变量,每个线程都会copy一份,不会有并发问题。而成员变量,是线程公用的,因此可能一个线程,没用完,另一个线程就会接着用,这样数据就对不上了,也就是并发问题。
3 解决方式是,把成员变量定义成final类型的,这样 任何线程都不能修改就不存在,并发问题。 还可以在方法内在使用成员变量时枷锁,这样只有一个线程用完另一个线程才能用,也不会存在并发问题。 这中方式是假定数据一定会被修改,叫做悲观锁。
有可能线程比较少,一个线程工作一段时间之后去休眠,当别的线程修改了它的数据,就重新计算,没有修改,就继续使用原来的数据,这种方式cvs 乐观锁。
Arts打卡第5周的更多相关文章
- Arts打卡第9周
Algorithm.主要是为了编程训练和学习. 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard). 进行编程训练,如果不训练你看再多的算法书,你依然不 ...
- ARTS打卡第三周
Algorithm 题目描述 Given an array of integers, find if the array contains any duplicates. Your function ...
- ARTS打卡计划第二周-Share-使用java注解对方法计时
现在有这样一种常见,系统中有一个接口,该接口执行的方法忽快忽慢,因此你需要去统计改方法的执行时间.刚开始你的代码可能如下: long start = System.currentTimeMillis( ...
- ARTS打卡计划第二周-Tips-mysql-binlog-connector-java的使用
最近发现一个挺不错的框架mysql-binlog-connector-java,可以实时监控binlog的变化. 首先检查mysql的binlog是否开启,在开启的情况下: 引入依赖 <depe ...
- ARTS打卡计划第二周-Review
本周review的文章是:https://medium.com/@hakibenita/optimizing-django-admin-paginator-53c4eb6bfca3 改篇文章的题目是: ...
- ARTS打卡计划第二周-Algorithm
665. 非递减数列 https://leetcode-cn.com/problems/non-decreasing-array/ 给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元 ...
- ARTS打卡计划第一周-Share-系统字典模块的设计
在软件开发的过程,经常有一些类型的字段信息:性别.学历.职级.车辆类别.公司类型.结算类型等.这些字段有2个特征:1是字段可选的类型是有限,2是字段可能会变化,我们把这种字段描述为字段字段. 本篇文 ...
- ARTS打卡计划第一周-Tips-ControllerAdvice的使用
通常在开发具体项目过程中我们可能会面临如下问题: 统一所有的json返回结果 统一处理所有controller中的异常,并且给不同异常不同的返回状态值 统一对返回的接口做数据校验或者加密,防止篡改 在 ...
- ARTS打卡计划第一周-Review
本周分享的文章来自于medium的 Testing Best Practices for Java + Spring Apps 这个文章主要讲的是java测试的一些最佳实践 1.避免函数返回void, ...
- ARTS打卡计划第一周-Algorithm
7. Reverse Integer import math class Solution: def reverse(self, x: int) -> int: ret = 0 if x > ...
随机推荐
- element-ui default-checked-keys 会把节点下所有子节点全部勾选解决方法
<el-tree class="filter-tree" :data="permissionData" :props="props" ...
- vscode教程(基础篇)
转载:https://segmentfault.com/a/1190000017949680 本文主要介绍vscode在工作中常用的快捷键及插件,目标在于提高工作效率 本文的快捷键是基于mac的,wi ...
- FreeRTOS 任务创建和删除(静态)
#define configSUPPORT_STATIC_ALLOCATION 1 //打开静态方法 StackType_t TaskStackBuffer[50]; //任务堆栈大小 StaticT ...
- ES Client
关于 ElasticSearch的学习参见:ELK | wjcx_sqh 本文分别学习 .Net | Java 下操作 ES: .Net 目前主流的 .Net 客户端有 2 种: PlainElast ...
- prometheus监控(小试牛刀)
prometheus监控(小试牛刀) 环境:全部服务都是基于docker运行 本文略微草率,好文章在这里,特别好如下: https://www.cnblogs.com/tchua/p/11120228 ...
- extern "C" 分析 -转
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同.作为一种欲与C兼容的语言,C++保留了一部分过程式语 ...
- sed进阶教程
寻址规则 常规寻址 如果没有指定地址,那么命令将应用于每一行. 如果只有一个地址,那么命令应用于与这个地址匹配的任意行. 如果指定了由逗号分隔的两个地址,那么命令应用于匹配第一个地址(不包括第一个地址 ...
- 基于beautifulSoup进行电影网站排名的获取与格式化输出
要求 编写代码完成以下任务: ① 将地址"http://www.cbooo.cn/year?year=2019"源代码使用任意方法保存到指定文件中(文件类型不限). ② 使用文件流 ...
- SpringBoot Kafka 整合集成 示例教程
1.使用IDEA新建工程,创建工程 springboot-kafka-producer 工程pom.xml文件添加如下依赖: <!-- 添加 kafka 依赖 --> <depend ...
- Alpha版本第二周小结
软工作业---Alpha版本第二周小结 姓名 学号 周前计划 每周实际工作记录 自我打分 yrz 1417 协助原型设计的完善,督促组员完成个人任务 原型优化设计未完成,但体 ...