各位中秋節連假愉快,我今天坐客運,還包車了呢,司機先生只載我一個人,運氣不錯,好啦今天也要繼續努力解題囉
今天的第一題,莫名其妙選到SQL題了呢,題目我真的都是亂選的,看哪個題目看起來比較親切,然後內容感覺上是我寫得出來的,好啦上題目
題號:183 標題:Customers Who Never Order 難度:Easy
題目內容:
Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything.
Table: Customers.
+----+-------+
| Id | Name |
+----+-------+
| 1 | Joe |
| 2 | Henry |
| 3 | Sam |
| 4 | Max |
+----+-------+
Table: Orders.
+----+------------+
| Id | CustomerId |
+----+------------+
| 1 | 3 |
| 2 | 1 |
+----+------------+
Using the above tables as example, return the following:
+-----------+
| Customers |
+-----------+
| Henry |
| Max |
+-----------+
我的SQL指令
select Customers.Name Customers from Customers WHERE Customers.Id NOT IN(SELECT Orders.CustomerId from Orders)
用到重新命名欄位跟NOT IN,痾,這題沒甚麼說的,就再來一題吧
題號:283 標題:Move Zeroes 難度:Easy
題目內仍:
Given an integer array nums, move all 0's to the end of it while maintaining the relative order of the non-zero elements.
Note that you must do this in-place without making a copy of the array.
Example 1:
Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]
Example 2:
Input: nums = [0]
Output: [0]
Constraints:
• 1 <= nums.length <= 104
• -231 <= nums[i] <= 231 - 1
Follow up: Could you minimize the total number of operations done?
我的程式碼
void moveZeroes(int* nums, int numsSize){
int i =0,count=0,count2,j;
for(i=0;i<numsSize;i++){ //計算多少個0
if(nums[i]==0){
count++;
}
}
count2=numsSize-count;//多少個非0
j=0;
for(i=0;i<numsSize;i++){
if(nums[i] != 0){
nums[j] = nums[i]; //把非0塞到前面去
count2=count2-1;
j++;
if(i >= numsSize-count){ //當i已經過了非0的idex,全塞0
nums[i] = 0;
}
}
}
return nums;
}
花比較久的時間
在於怎麼把正確的0的數量補上
其實這題我也是最直觀的解法,先計算非0的各數,然後再把非0的數值填回去,當都填完以後,其他的全部塞0。
DAY3心得
不知不覺第三天來囉,漸入佳境,大家加油阿,晚安