Algorithm

从排序数组中删除重复项
 
 

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

示例 1:

给定数组 nums = [1,1,2], 

函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 

你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,0,1,1,1,2,2,3,3,4],

函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。

你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums); // 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);
} 解答:
class Solution {
public int removeDuplicates(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}
int back = 0;
for (int front = 1; front < nums.length; front++) {
if (nums[back] != nums[front]) {
back++;
nums[back] = nums[front];
}
}
return back + 1;
} }

我想了下如果输入的数组,有没有{1,2,1,3,3,1}这种,非连续重复 的可能性。。虽然这种可能性存在,但是没有做出来。

Review

文章是Spring新建Restful webService 的介绍。https://spring.io/guides/gs/rest-service/#scratch

知识点:

1  Restful webService 和传统的mvc controller的区别是 Restful webService 关键在于http相应体的创建方式。Restful webService 不是视图的方式返回返回相应体而是直接 返回一个对象。对象是通过 json 的方式,写到http响应中。 我们不用手动的吧对象转化成 json格式是因为 MappingJackson2HttpMessageConverter  自动帮我们吧对象做了转化。

2 @EnableAutoConfiguration 告诉springboot 在根路径上寻找其他bean和配置文件。

3 @ComponentScan 告诉spring在根目录下寻找其他的配置和service,允许他们找到controller。

4@SpringBootApplication   包含3个注解: @ComponentScan  @EnableAutoConfiguration  @Configuration

Tip

java用freemaker 导出word。其中的关键点在于,制作模板。可以在ideal中制作ftl格式的模板,,在模板中 列表的每一张都有 <w:tr> 标签。。还有要注意的地方是${} 在模板中最好不要,留下 }单独在一行,这样会报错。参考链接:https://www.cnblogs.com/prader6/p/10562156.html

Share

mysql 查询优化实战:https://mp.weixin.qq.com/s?__biz=MzIwMTY0NDU3Nw==&mid=2651938458&idx=1&sn=249d03425789110e4921f53ef1b1952a&chksm=8d0f31d4ba78b8c22ec64e28fe39889f5ddc2db60a461e399a66d1725e2daf505be7505595d3&mpshare=1&scene=1&srcid=&key=32072adf498bfba6de7b82018eb4fd5ec76adbde5d4e7a541d05b171081a115793cd84dbc389582cfe5d4aa9b81c46e226e95176f7e8b62ea4b157ea0b648ea93c8ffec3a12018e57df6303d15b1af3b&ascene=1&uin=NjY5NzE2NzA5&devicetype=Windows+10&version=62060739&lang=zh_CN&pass_ticket=xsdm7lSVSaYFACsc%2B7V%2FId8J7ynIWL0j2bRj6V8WeiOnsc6IrVLmQwIW7nGp7rnl

总结:1 mysql 语句执行顺序是先执行括号外部的语句再执行括号内部的语句。

2  给要查询的列加索引可以极大的提升查询效率。

  • where条件字段上需要建立索引

  • 排序字段上需要建立索引

  • 分组字段上需要建立索引

  • Where条件上不要使用运算函数,以免索引失效

arts打卡 从排序数组中删除重复项的更多相关文章

  1. leetCode----day01---- 从排序数组中删除重复项

    需求: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. ...

  2. 【LeetCode】从排序数组中删除重复项

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1 ...

  3. leetcode 从排序数组中删除重复项

    最近的学习是相当的无聊,并且很无趣,每天都浪费了很多时间,比如今天下午,就是搞一手成语接龙,我也是醉了- 并且我也不知道学什么了,所以决定刷题 虽然我是0算法基础,0逻辑能力的渣渣,但是尽力每天做一道 ...

  4. 026 Remove Duplicates from Sorted Array 从排序数组中删除重复项

    给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度.不要另外定义一个数组,您必须通过用 O(1) 额外内存原地修改输入的数组来做到这一点.示例:给定数组: nums ...

  5. LeetCode:删除排序数组中的重复项||【80】

    LeetCode:删除排序数组中的重复项||[80] 题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原 ...

  6. Leetcode_删除排序数组中的重复项

    Leetcode  删除排序数组中的重复项 题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用 额外的数组空间,你必须在原地修改输入数 ...

  7. LeetCode 80. 删除排序数组中的重复项 II

    LeetCode 80. 删除排序数组中的重复项 II

  8. leecode刷题(1)-- 删除排序数组中的重复项

    删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的 ...

  9. 前端与算法 leetcode 26. 删除排序数组中的重复项

    目录 # 前端与算法 leetcode 26. 删除排序数组中的重复项 题目描述 概要 提示 解析 算法 # 前端与算法 leetcode 26. 删除排序数组中的重复项 题目描述 26. 删除排序数 ...

随机推荐

  1. WinForm DataGridView双向数据绑定

    程序目标: 实现DataGridView与BindingList<T>双向绑定.用户通过DataGridView修改值后立即更新BindList对象的值,代码修改BindList后立即更新 ...

  2. python3 完全理解赋值,浅copy,深copy 通过地址详细理解~

    额...老规矩,先来一天NLP再说,也没几条了. 十,在任何一个系统里,最灵活的部分是最能影响大局的部分 灵活便是有一个以上的选择,选择便是能力,因此最灵活的人便是最有能力的人. 灵活来自减少只相信自 ...

  3. 超级简单!把文档转换成网页格式(Core)

    因为需要把好多的文档放在服务器上访问,最开始是使用第3方网站www.aconvert.com,这个其实也挺方便的, 最后由于一些需求原因,最终只有依靠代码来进行,以下是简化后的代码 创建一个控制台应用 ...

  4. cassandra 堆外内存管理

    为什么需要堆外内存呢 单有一些大内存对象的时候,JVM进行垃圾回收时需要收集所有的这些对象的内存也.增加了GC压力.因此需要使用堆外内存. java 分配堆外内存 org.apache.cassand ...

  5. 如何将Azure DevOps中的代码发布到Azure App Service中

    标题:如何将Azure DevOps中的代码发布到Azure App Service中 作者:Lamond Lu 背景 最近做了几个项目一直在用Azure DevOps和Azure App Servi ...

  6. ShareDialogDemo【分享对话框】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 整理项目中经常用到的分享对话框的实现. 这里只是一个分享对话框,不涉及分享功能的实现. 效果图 代码分析 ShareDialog.j ...

  7. C#反射调用方法实例

    下面是两个反射的实例 案例1: 动态调用类中的方法.传入参数,并获得返回值. xxxx:类名 Event:类中的方法 pra1,pra2,pra3:方法对应的入参 DoRet:方法返回的执行结果 Ty ...

  8. DS控件库 Win7链接列表框效果1:右侧箭头

    Win7链接列表框是仿Windos7开始菜单项开发的控件,同样支持右侧箭头,由于使用场合的不同,本控件中右键箭头不作为菜单扩展,而是通过事件触发式响应. 先上图 代码很简单,点击对右侧箭头区域点击的响 ...

  9. WPF ObservableCollection 异步调用问题

    问题介绍 当ObservableCollection列表被UI线程占用时,如果在异步线程中调用ObservableCollection,会弹出以下异常: 问题分析 我们使用一个viewModel,在V ...

  10. InnoSetup 脚本打包及管理员权限设置

    InnoSetup使用教程:InnoSetup打包安装 脚本详细 1. 定义变量 #define MyAppName "TranslationTool" #define MyApp ...