1. 程式人生 > >arts打卡 從排序數組中刪除重復項

arts打卡 從排序數組中刪除重復項

adf ftl oot log ota org 做了 convert config

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。

[email protected] 包含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打卡 從排序數組中刪除重復項