Weekly Contest 141

做了第一道后,看了下中间两道题目,没怎么看懂就先放着,做完最后一道,然后就没时间了。

1089. Duplicate Zeros

Given a fixed length array arr of integers, duplicate each occurrence of zero, shifting the remaining elements to the right.

Note that elements beyond the length of the original array are not written.

Do the above modifications to the input array in place, do not return anything from your function.

 

Example 1:

Input: [1,0,2,3,0,4,5,0]
Output: null
Explanation: After calling your function, the input array is modified to: [1,0,0,2,3,0,0,4]

Example 2:

Input: [1,2,3]
Output: null
Explanation: After calling your function, the input array is modified to: [1,2,3]

 

Note:

  1. 1 <= arr.length <= 10000
  2. 0 <= arr[i] <= 9

题目大意:给你一个数组,让你改造这个数组,规则如下:1、数组长度不变。2、碰见0就将0重复一次,然后下一个数字往后移一位,查过长度的数字去掉。

解题思路:还是比较简单的,只要看懂题目,按照题目规则我们可以先将数组保存下来,然后直接遍历保存的数组,在原数组上直接修改。(应该还有不需要辅助数组的解法)

代码:

class Solution {public void duplicateZeros(int[] arr) {int[] a = arr.clone();int len = arr.length;int j = 0;for(int i=0; i<len && j<len; i++) {if( a[i] == 0 ) arr[j++] = 0;if( j == len ) break;arr[j++] = a[i];}}
}
View Code

 

1092. Shortest Common Supersequence

Given two strings str1 and str2, return the shortest string that has both str1 and str2 as subsequences.  If multiple answers exist, you may return any of them.

(A string S is a subsequence of string T if deleting some number of characters from T (possibly 0, and the characters are chosen anywherefrom T) results in the string S.)

 

Example 1:

Input: str1 = "abac", str2 = "cab"
Output: "cabac"
Explanation: 
str1 = "abac" is a substring of "cabac" because we can delete the first "c".
str2 = "cab" is a substring of "cabac" because we can delete the last "ac".
The answer provided is the shortest such string that satisfies these properties.

 

Note:

  1. 1 <= str1.length, str2.length <= 1000
  2. str1 and str2 consist of lowercase English letters.

题目大意:题目很简单,就是求最短公共父串。即给你两个串str1和str2,让你寻找一个最短字符串str既包含str1也包含str2。当然这个str可能会有多个,输出其中一个就好。

解题思路:相当于是一个LCS变种吧。求出两个串的LCS,然后将两个串不在LCS中的字符在相应的LCS的“空隙”中输出。

代码:

    class Solution {public String shortestCommonSupersequence(String str1, String str2) {int m = str1.length();int n = str2.length();int dp[][] = new int[m + 1][n + 1];for (int i = 0; i <= m; i++) {for (int j = 0; j <= n; j++) {if (i == 0) {dp[i][j] = j;} else if (j == 0) {dp[i][j] = i;} else if (str1.charAt(i - 1) == str2.charAt(j - 1)) {dp[i][j] = 1 + dp[i - 1][j - 1];} else {dp[i][j] = 1 + Math.min(dp[i - 1][j], dp[i][j - 1]);}}}int index = dp[m][n];String str = "";int i = m, j = n;while (i > 0 && j > 0){if (str1.charAt(i - 1) == str2.charAt(j - 1)){str += (str1.charAt(i - 1));i--;j--;index--;}else if (dp[i - 1][j] > dp[i][j - 1]) {str += (str2.charAt(j - 1));j--;index--;} else {str += (str1.charAt(i - 1));i--;index--;}}while (i > 0) {str += (str1.charAt(i - 1));i--;index--;}while (j > 0) {str += (str2.charAt(j - 1));j--;index--;}str = reverse(str);return str;}String reverse(String input) {char[] temparray = input.toCharArray();int left, right = 0;right = temparray.length - 1;for (left = 0; left < right; left++, right--) {char temp = temparray[left];temparray[left] = temparray[right];temparray[right] = temp;}return String.valueOf(temparray);}}
View Code

 

转载于:https://www.cnblogs.com/Asimple/p/11077851.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IntelliJ IDEA 中配置、使用 SVN

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.配置svn 如下图&#xff1a; file -- setting -- version control -- subversion -- 选择 SVN安装路径 -- apply -- OK 2.直接检出…

切记!职场邮件需注意的细节

电子邮件是如今工作场所重要的通信工具之一&#xff0c;但不是每个人都知道如何很好地使用这个工具。工作邮件也是人际沟通的一种方式&#xff0c;和打电话、面谈一样&#xff0c;有很多学问讲究&#xff0c;所以在发送邮件之前一定要深思熟虑。 【发送&#xff0c;抄送&…

李洋疯狂C语言之初

1.sizeof 是看数据类型所占空间大小&#xff0c;这个大小是以 字节&#xff08;B&#xff09;为单位 char 是C语言的字符数据类型 %d 用在printf 中表示往屏幕打印一个数字 printf ("char&#xff1a; %d\n", sizeof(char)); 数据类型之间的关系&#xff0c;shor…

时时流量查看工具-ifsta,nload,iftop

为什么80%的码农都做不了架构师&#xff1f;>>> 1、ifstat 是一个网络流量监测程序。能查看网卡的流出和流入的字节. 概要&#xff1a;ifstat就像iostat/vmstat描述其它的系统状况一样&#xff0c;是一个统计网络接口活动状态的工具。 参数&#xff1a; -l 监测环路…

10大清宿便排毒方法及简单排毒瘦小腹运动

早上空腹喝水法&#xff1a;每日起床后空腹喝下500C.C.加盐的冷开水。只要是冷的饮料或水分&#xff0c;在肠胃空腹时都有刺激肠胃蠕动的效果&#xff0c;而且越冰刺激效果越好&#xff0c;建议不需加盐&#xff0c;以免高血压患者因盐分中的金属离子造成肾的负担。 优酪乳加绿…

破解 IntelliJ IDEA 、免费注册方法、注册码

1. 找到hosts文件&#xff0c;在此路径下 C:\Windows\System32\drivers\etc 2. 修改hosts 文件&#xff0c;在最后 加一行配置&#xff1a; &#xff08;此操作需要电脑管理员权限&#xff09; 0.0.0.0 account.jetbrains.com 3. 从idea 注册码生成网站生成一组注册码。网…

李洋疯狂C语言之冒泡排序法

今天的课后任务是2种排序方式&#xff08;冒泡排序和选择排序&#xff09; 冒泡排序法1 原理&#xff1a;从a[0]开始&#xff0c;依次将其和后面的元素比较&#xff0c;若a[0]>a[i]&#xff0c;则交换他们&#xff0c;一直比较到a[n]。同理对a[1], a[2], ……a[n-1]处理&a…

MySQL水平分区代理Spock Proxy(一)

为什么80%的码农都做不了架构师&#xff1f;>>> MySQL水平分区代理Spock Proxy 水平分区(sharding)将同一数据表中的数据通过特定的算法进行分离&#xff0c;分别保存在不同的数据表中&#xff0c;从而部署到不同的数据库服务器上。 水平分区后&#xff0c;数据拆分…

OO第四单元作业

1.作业的架构设计 &#xff08;1&#xff09;对于第一次作业中&#xff0c;要求我们实现关于类图的查询指令。 在这次作业中&#xff0c;主要采用的储存方法是哈希表。 在查询方法上&#xff0c;大多数要求诸如共有多少类等&#xff0c;利用哈希表进行查询即可。 比较困难的一些…

伤钱伤感情 10件不能和亲戚一起干的事儿

关于亲戚和理财&#xff0c;网友小盒总结了下十大别和亲戚干的事儿&#xff0c;干了之后保管既伤钱又伤感情&#xff1a; 1、别帮亲戚炒股 赚了觉得你赚得不如以前吹的那么多&#xff0c;赔了就剩翻脸了&#xff0c;搭时间搭功夫还不落好。 2、别和亲戚一起做生意 道理同…

李洋疯狂C语言之选择排序

选择排序法 原理&#xff1a; 选择法循环过程与冒泡法一致&#xff0c;它还定义了记号mini&#xff0c;然后依次把a[min]同后面的元素比较&#xff0c;若a[min]>a[j],则使kj. 最后看看ki是否还成立&#xff0c;不成立则交换a[k], a[i],这样就比冒泡法省下许多无用的交换&a…

利用 git 提交代码、git 简单使用(拉取、推送、分支、合并)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.安装 git sudo apt-get install git 2.查看版本&#xff1a; git --version 我的版本信息&#xff1a; 3. 配置用户名和邮箱 : …

如何在android studio中设置sdk path?

为什么80%的码农都做不了架构师&#xff1f;>>> Press F4 into Project StructureLeft > SDKsPress , add another sdk转载于:https://my.oschina.net/itfanr/blog/195714

面试题之第一部分(Python基础篇) 80题

第一部分&#xff08;python基础篇&#xff09;80题 为什么学习Python&#xff1f;* # 1. python应用于很多领域&#xff0c;比如后端&#xff0c;前端&#xff0c;爬虫&#xff0c;机器学习&#xff08;人工智能&#xff09;等方面&#xff0c;几乎能涵盖各个开发语言的领域&a…

OpenCL的安装与配置

Windows 步骤 1&#xff1a;在 http://developer.amd.com/pages/default.aspx根据相应的操作系统&#xff0c;下载最新的 AMD driver&#xff0c; AMD APP SDK。AMD APP SDK目前支持Windows VISTA[32][64]bit&#xff0c;Windows 7[32][64]bit操作系统。 步骤 2:如果已经安装了…

解决:java.lang.IllegalStateException: ApplicationEventMulticaster not initialized

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. springboot 项目启动时报错&#xff1a; java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call …

李洋疯狂C语言之求素数的方法

今天课上李洋老师讲到求素数时&#xff0c;讲了一种新的方法&#xff0c;一开始听得我一脸懵逼&#xff0c;但当我理解的时候&#xff0c;眼前一亮&#xff0c;老师的算法省去了不少步骤&#xff0c;话不多说&#xff0c;附上题目&#xff1a;求100到200之间的素数。 输入&…

面试官问我:平常如何对你的 Java 程序进行调优?

阅读本文大概需要 10 分钟。作者&#xff1a;张俊城, 郭理勇, 刘建来源&#xff1a;http://t.cn/AiCTERJzJava 应用性能优化是一个老生常谈的话题&#xff0c;典型的性能问题如页面响应慢、接口超时&#xff0c;服务器负载高、并发数低&#xff0c;数据库频繁死锁等。尤其是在“…

c语言—变量

变量 存储类型auto register static extern 变量在内存空间中的首地址&#xff0c;称为变量的地址。 变量的定义形式&#xff1a;<存储类型> <数据类型> <变量名> 存储类型&#xff1a;auto register static extern auto (不写默认是auto)局部变量auto 变量的…

李洋疯狂C语言之关于自增自减遇到的一些问题

今天讲到自增的时候&#xff0c;遇到个难点&#xff0c;单个的自增自减运算还是挺简单的&#xff0c;但是如果是多个自增自减&#xff0c;就会变得比较麻烦&#xff0c;在windows环境和Linux环境中也会得到不一样的结果&#xff0c;windows中比较简单&#xff0c;他会将所有前缀…