Lintcode題目列印X的思路分析

2022-09-18 17:42:07 字數 490 閱讀 8416

列印x其實是一道找規律的題目,在開始分析這道題目的時候,陷入了乙個誤區,就是想按照輸入的行數的奇偶來進行拆分(因為奇數總行數和偶數總行數最中心的哪個位置是不同的),然後還想按照上下各一半來處理,當上半部分處理完成後,再反轉一下,最後拼接之後就好了,但是發現這種處理方式給自己帶來了很多的限制,需要有很多的細節需要去考慮,非常的麻煩。

在紙上找規律的過程中,發現了如下現象:

因為每乙個結果都是乙個正方形,且畫x的位置就在這個正方形的對角線上,那麼根據行數n(列數相同也是n)可以得到規律,第a行的x位置座標為(a,a)(a,n-a+1)(注:我這裡的橫縱座標都是以1開始的,如果以0開始,對應修改即可)。

根據上述規律我的解決方案見下:

LintCode刷題 x的平方根

解釋 思想 使用二分查詢法 方法 n x n 這比 n n x 好一點,因為 中n n可能造成資料超出 int 範圍 詳細解釋 int mid start end start 2 使得每次mid都是中間數或者是比中間數大一的數 mid x mid 說明查詢的區間在start到mid之間 最後乙個if...

lintCode1100 奇怪的印表機

1100 奇怪的印表機 有乙個奇怪的印表機,它有如下兩個特別的要求 1.這個印表機只每次能列印乙個由相同字母構成的串。2.在每一輪當中,這個印表機可以列印從任意位置開始到任意位置結束的新字母,並且可以覆蓋掉原來存在的字母。給定乙個僅包含小寫英文本母的字串,你的任務是計算印表機為了列印出它鎖需要的最小...

LintCode 題目 下乙個更大的數 I

你有兩個陣列nums1和nums2 互不重複 其中nums1是nums2的子集。在nums2的相應位置找到nums1所有元素的下乙個更大數字。nums1中的數字x的下乙個更大數字是nums2中x右邊第乙個更大的數字。如果它不存在,則為此數字輸出 1。1.nums1和nums2中的所有數字都是唯一的。...