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.pswp.cn/news/448632.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448632.shtml
英文地址,請注明出處:http://en.pswp.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;他會將所有前綴…