package org.nocoder.leetcode.solution;
/**
* 136. Single Number
* Given a non-empty array of integers, every element appears twice except for one. Find that single one.
*
* Note:
*
* Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
*
* Example 1:
*
* Input: [2,2,1]
* Output: 1
* Example 2:
*
* Input: [4,1,2,1,2]
* Output: 4
*
* @author yangjinlong
* @date 2018-12-06
*/
public class SingleNumber {
public static int singleNumber(int[] nums) {
int result = 0;
for(int i : nums) {
result ^= i;
}
return result;
}
public static void main(String[] args) {
int[] arr1 = new int[]{2,2,1};
int[] arr2 = new int[]{4,1,2,1,2};
System.out.println(singleNumber(arr1));
System.out.println(singleNumber(arr2));
}
}
Announcing Stack Overflow for Teams
you can ask questions that will only be visible to members of your team, company, or organization.
既可以面向团队提问,又可以面向世界提问
从
Camden-SR2
开始,Spring Cloud 整合了Spring Retry
来增强RestTemplate
的重试能力,通过简单的配置即可实现服务访问重试策略。我们项目中的Spring Cloud
版本选择从Brixton.RELEASE
升级至Camden-SR3
。
pom.xml 中,将 spring-cloud-dependencies
的 version
修改为 Camden.SR3
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
# 开启重试机制,默认是false
spring.cloud.loadbalancer.retry.enabled=true
# 对所有操作请求都进行重试
ribbon.OkToRetryOnAllOperations=true
# 开启重试机制,默认是false
spring.cloud.loadbalancer.retry.enabled=true
# 请求连接的超时时间
ribbon.ConnectTimeout=250
# 请求处理的超时时间,使用SimpleClientHttpRequestFactory时,不用配置
ribbon.ReadTimeout=1000
# 对所有操作请求都进行重试
ribbon.OkToRetryOnAllOperations=true
# 切换实例的重试次数,默认为1,可使用默认值
ribbon.MaxAutoRetriesNextServer=2
# 对当前实例的重试次数,默认为1,可使用默认值
ribbon.MaxAutoRetries=1
RestTemplate
默认使用的是 ClientHttpRequestFactory
是 SimpleClientHttpRequestFactory
, 此时 ribbon.ConnectTimeout
,ribbon.ReadTimeout
这两个参数配置是不生效的。
如需设置 connectTimeout
,需要手动创建 SimpleClientHttpRequestFactory
实例,注入 RestTemplate
构造方法中。
@Bean
@LoadBalanced
RestTemplate restTemplate() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(250);
RestTemplate restTemplate = new RestTemplate(factory);
//自定义响应错误处理
restTemplate.setErrorHandler(new LibraryResponseErrorHandler());
return restTemplate;
}
另一种实现,把 ribbon.httpclient.enabled
设置为 true
,RestTemplate
的 ClientHttpRequestFactory
就会使用 RibbonClientHttpRequestFactory
,此时 ribbon.ConnectTimeout
,ribbon.ReadTimeout
这两个参数配置会生效(注: SpringCloud
版本:Camden.SR3
)。
twitter上看到一个好玩的东西