在有空串的字串中查詢和優化a的n次冪演算法

2021-10-02 21:57:13 字數 1475 閱讀 2401

2020.2.17

11:30

思路:看到陣列有序,首先應該要想到用二分法來去做,框架要先搭建出來,begin、mid、

end、以及mid>要找的元素,end=mid-1,mid《時,begin=mid+1.

其次,考慮到時字串,在等於空的時候,用equals方法,在比較的大小的時候,用

compareto方法。

**:

package lanqiaoknowledge;

public

class 在有空字串的有序陣列中查詢 }if

(arr[mid]

.compareto

(p)>0)

else

if(arr[mid]

.compareto

(p)<0)

else

}return-1

;}public

static

void

main

(string[

] args)

;int res=

indexof

(s,"bd");

system.out.

println

(res);}

}

思路:傳統的用迴圈的寫法,寫出來的複雜度為o(n),可以將o(n)優化到o(log n)。

思路:log(n)的話,結合之前來看,是將本來的問題每次折半,上樓梯或者下樓梯的時候

第一次變成2,第二次變成4,第三次8,剩下的7次再交給第二個遞迴去做。這樣就可以將

時間複雜度優化為o(log n)。

**:

package lanqiaoknowledge;

public

class 求a的n次冪

return res;

}static

intpow2

(int a,

int n)

int res=a;

//a不能作為乙個變數,所以設定乙個數將a賦值給它

int exit=1;

//初始的冪

while

((exit<<1)

<=n)

//補差值

return res*

pow2

(a,n-exit)

;//如果n不能準確的翻倍來得到。不補差值,再呼叫遞迴

}public

static

void

main

(string[

] args)

}

覺得越來越有些上頭了,奧利給!

在有空字串的有序字串陣列中查詢 有點問題

存在乙個排序後的字串陣列,其中散布著一些空字串。根據使用者輸入的字串進行索引。例如,有序字串陣列。方法1 二分查詢,迭代方式 a a ac ad b ba b input x 0y len a 1 while 1 0 跟二分查詢的 一樣,只不過增加乙個判斷。判斷a item 是否是空串,若是空串,則...

在有序但還有空的陣列中查詢字串

題目 思路 這個應該也可以用map的那種吧,不過需要遍歷整個陣列。複雜度是o n 使用二分演算法的話,時間複雜度是o logn 而且這個字元陣列的話還是乙個有序的字元陣列。這個題我自己寫的輸入輸出可能是有些問題,結果不正確。改用直接寫陣列是對的。public static int method st...

在有序但含有空的陣列中查詢字串

題目 給定乙個字串陣列strs,在strs中有些位置為none,但在不為none的位置上,其字串是按照字典順序由小到大依次出現的。再給定乙個字串s,請返回s在strs 現的最左的位置。舉例 strs none,a none,a none,b none,c s a 返回1 strs none,a no...