Algorithm

旋转数组

Given an array, rotate the array to the right by k steps, where k is non-negative.

Example 1:

Input: [1,2,3,4,5,6,7] and k = 3
Output: [5,6,7,1,2,3,4]
Explanation:
rotate 1 steps to the right: [7,1,2,3,4,5,6]
rotate 2 steps to the right: [6,7,1,2,3,4,5]
rotate 3 steps to the right: [5,6,7,1,2,3,4]

Example 2:

Input: [-1,-100,3,99] and k = 2
Output: [3,99,-1,-100]
Explanation:
rotate 1 steps to the right: [99,-1,-100,3]
rotate 2 steps to the right: [3,99,-1,-100]

Note:

  • Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
  • Could you do it in-place with O(1) extra space?

思路:想了好长时间,没想到,就去参考比人的答案了。

解题思路:数组为 1 2 3 4 5 6 7  k = 3  就相当于先反转为

4 3 2  1 7 6 5

再把整个数组再次进行翻转 5 6 7 1 2 3 4

所以先定义一个反转数组的方法, 以nums.length - k 为中间,左边的数组进行一次反转,然后右边的再次进行反转。 再次整体进行反转

class Solution {
public void rotate(int[] nums, int k) {
if(nums == null||nums.length == 0|| k % nums.length ==0 ){
return;
}
int turns = k % nums.length;
int middle = nums.length - turns; reverse(nums, 0, middle -1);
reverse(nums, middle, nums.length - 1);
reverse(nums, 0, nums.length-1);
} public void reverse(int [] nums, int start, int end){
while(start < end){
int temp = nums[start];
nums[start++] = nums[end];
nums[end--] = temp;
}
}
}

Review

这篇文章是, 使用RESTful Web服务  ,参考文章:https://spring.io/guides/gs/consuming-rest/

知识点:

1 在新建的实体类上@JsonIgnoreProperties 注解,标志着,这个实体类中,任何没有绑定值的属性都可以忽略。。关于这一点,自己是这样理解的,用这个实体类接收前端传过来的属性,可以少几个属性也是 可以的。

2  @SpringBootApplication 注解可以把一个main()方法,变成,springBoot的启动类。

3  RestTemplateBuilder被自动注入到spring中,所以一个请求过来时,是先经过spring的请求工厂的。

4 可以通过@Bean的方式,自己配置RestTemplate。

Tip

freemaker + java代码导出word ,包含图片。

这个主要是工作的内容,其中的图片为echart图,导出到word中的时候 用的base64的格式的字符串。

把流转化为base64格式。

public class Test2 {
public static String get() throws IOException { InputStream resourceAsStream = Test2.class.getResourceAsStream("/image/image_1.png");
BufferedInputStream bufferedInputStream = new BufferedInputStream(resourceAsStream);
byte[] bytes = new byte[bufferedInputStream.available()];
bufferedInputStream.read(bytes);
BASE64Encoder base64Encoder = new BASE64Encoder();
String encode = base64Encoder.encode(bytes);
System.out.println(encode);
bufferedInputStream.close();
return encode; }
}

这个导入图片的时候,在word中自己建的图标,比如折线图算图片的,需要另存为,图片重新放回word 中才算是图片的。

这篇导出word 的文章,我还没有汇总,汇总后会重新发一篇博客。

Share:

这里分享一篇阿里工程师,对程序员学习的建议吧。刚看完,因为自己最近也有类似的困惑,所以觉得挺实用的。感觉书中最好的一点是,用碎片化的时间系统学习。。看书,不是就要记住。

参考链接:https://zhuanlan.zhihu.com/p/35557474

arts打卡第二周的更多相关文章

  1. arts打卡13周

    算法: 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数.其前五项如下: 1. 12. 113. 214. 12115. 1112211 被读作  "one 1" ...

  2. arts 打卡12周

    一 算法:  字符串转换整数 (atoi)   请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找 ...

  3. ARTS第二周

    第二周. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享一篇有观点和思考的技术文 ...

  4. 201521123093 java 第二周学习总结

    201521123093 <java程序设计> 第二周学习总结 一.第二周学习总结 答:(1)关于进一步使用码云管理代码,本周才真正学会了如何将Eclipse里的代码上传到码云中,并且能够 ...

  5. 2017-2018-1 Java演绎法 第二周 作业

    团队任务:讨论Android上的游戏软件 参考现代软件工程 第一章 [概论]练习与讨论: 软件有很多种,也有各种分类办法,本次团队任务是讨论选取Android上的一个游戏软件,考虑到每位组员接触的游戏 ...

  6. 2017-2018-1 Java小组-1623 第二周作业

    2017-2018-1 Java小组-1623 第二周作业 关于游戏软件的问题 讨论结果 20162301张师瑜 20162305李昱兴 20162306陈是奇 20162308马平川 2016231 ...

  7. 三节课MINI计划第二周

    任务:完成一份用户反馈的收集,并进行分析 第一步:去你能想到的公开.非公开渠道收集最近90天,至少40条和B站相关的有效用户差评反馈,并根据你对业务的理解分类整理,以表格的形式进行整理,以图片的方式提 ...

  8. Surprise团队第二周项目总结

    Surprise团队第二周项目总结 项目进展 已实现五子棋人人模式部分 人人模式: 基本方式:采取黑棋先行,黑白交替的下棋顺序. 模式:通过鼠标点击相应棋盘中的"交叉点",在lay ...

  9. python课程第二周重点记录

    python课程第二周重点记录 1.元组的元素不可被修改,元组的元素的元素可以被修改(字典在元组中,字典的值可以被修改) 2.个人感觉方便做加密解密 3.一些方法的使用 sb = "name ...

随机推荐

  1. 【Python实践-2】求一个或多个数的乘积

    # -*- coding: utf-8 -*- #定义一个函数,可接收一个或多个数并计算乘积 def product(*numbers): s=1 for n in numbers: s=s*n re ...

  2. 微软跨平台ORM框架之EFCore — 约定与属性映射

    EFCore中的约定简单来说就是规则,CodeFirst基于模型的约定来映射表结构.除此之外还有Fluent API.Data Annotations(数据注释) 可以帮助我们进一步配置模型. 按照这 ...

  3. 【Netty】(7)---搭建websocket服务器

    [Netty](7)---搭建websocket服务器 说明:本篇博客是基于学习某网有关视频教学. 目的:创建一个websocket服务器,获取客户端传来的数据,同时向客户端发送数据 一.服务端 1. ...

  4. LogUtil【实现自由的控制日志的打印的封装类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 主要用于控制项目开发和上线阶段日志的打印. 效果图 暂不需要. 代码分析 在LogUtil类中声明代表不同日志级别的常量值(VERB ...

  5. ShareIntentUtil【调用系统自带的分享的工具类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据参考资料的文章,整理了调用系统自带分享的工具类(实现了适配7.0FileProvider的功能),需要搭配<Android ...

  6. Flink中的Time

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  7. 自定义Visual Studio.net Extensions 开发符合ABP vnext框架代码生成插件[附源码]

    介绍 我很早之前一直在做mvc5 scaffolder的开发功能做的已经非常完善,使用代码对mvc5的项目开发效率确实能成倍的提高,就算是刚进团队的新成员也能很快上手,如果你感兴趣 可以参考 http ...

  8. Spring Cloud项目之断路器集群监控Hystrix Dashboard

    微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完 ...

  9. Spring 中 IoC 容器简介

    IoC 是一种通过描述来生成或者获取对象的技术,可以说 Spring 是一种基于 IoC 容器编程的框架 在一个系统中可以生成各种对象,并且这些对象都需要进行管理.为了描述这些对象关系,我们需要一个容 ...

  10. 虚拟机安装CentOS7(一)

    软件环境 虚拟机:VMware Workstation Linux:CentOS-7-x86_64-DVD-1708.iso镜像文件 虚拟机所在电脑系统:win7 安装步骤 安装VMware 下载Li ...