2018年4月16日 星期一

[67] Add Binary

吸加加的string好方便QQ
不過還是寫的很醜
sign

Add Binary
class Solution {
public:
    string addBinary(string a, string b) {
        int lenA = a.length();
        int lenB = b.length();
        string ret;
        int i,j, flag = 0;
        for(i=lenA,j=lenB;(i>0 || j>0);i--,j--)
        {
            int anum = 0,bnum = 0;
            if (i>0)
                anum = a[i -1] - '0';
            if (j>0)
                bnum = b[j -1] - '0';

            int tmp = flag + anum + bnum;
            if (tmp > 1)
            {
                flag = 1;
                tmp -=2;
            }
            else
                flag = 0;
            ret = to_string(tmp) + ret;


        }
        if (flag>0)
            ret = "1" + ret;

        return ret;
    }
};

2018年4月14日 星期六

[35] Search Insert Position

給一個sorted array和一個數字,
回傳這個數字在array裡的index
如果不存在, 則回傳依大小把它加進去的話它應該是多少index
吸加加到底是什麼
我現在好迷惘啊~~~(滾來滾去滾來滾去)

Search Insert Position
class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int i, len = nums.size();
        for (i=0;i<len;i++)
            if (nums[i] >= target)
                break;
        return i;
    }
};

[20251025 更]
什麼原來我當時是用C++寫嗎~_~
結果還是搞不懂return value 應該是什麼啊啊啊啊啊~(抱頭)
在這個題目裡, 兩種return 是一樣的。
while 給它等於,  mid 給它加減一。

int searchInsert(int* nums, int numsSize, int target) {
int l=0;
int r = numsSize-1;
while(l<=r)
{
int mid = l+(r-l)/2;
if (nums[mid]== target)
return mid;
if (nums[mid]<target)
l=mid+1;
if (nums[mid]>target)
r=mid-1;
}
return l;
return r+1;
}