Re: [問題] 兩個陣列元素找出不同
※ 引述《jehovah (Lucius)》之銘言:
: 朋友面試遇到的問題~
: C裡面兩個陣列a b,元素都一樣,只是b比a多了一個元素
: 如何不用比較子> < ==等等 找出不同的元素
: 想了一陣子沒有頭緒~可以指點一些方向嗎^^
這題其實很簡單,不過如果標準答案supposed是這個的話
我會覺得這家公司塊陶啊....
假設這兩個陣列的element都是c(c可以是int char...etc)
首先我們先用bitwise查出他們是在第幾個bit不同
a ^ b, 然後找出第一個1就是第幾個bit不同
000000000000000000000000111111111111111111111111.....
假設sizeof(c)是1(也就是8bit) 也就是a b前三個(0 1 2)都相同
b[3]就一定是多出來的那個,ok 所以要怎麼找出來呢,很簡單
我們把a[3]全部填1 a b就會等長了,最後我們把a b做and bitwise
假設出來是d, 那d[3]就是多出來的那個數字
這不叫做技術 這叫做腦筋急轉彎.....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.251.135
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1425532702.A.876.html
→
03/05 13:19, , 1F
03/05 13:19, 1F
推
03/05 13:38, , 2F
03/05 13:38, 2F
推
03/05 13:49, , 3F
03/05 13:49, 3F
→
03/05 13:50, , 4F
03/05 13:50, 4F
→
03/05 13:51, , 5F
03/05 13:51, 5F
→
03/05 13:59, , 6F
03/05 13:59, 6F
→
03/05 14:00, , 7F
03/05 14:00, 7F
→
03/05 14:01, , 8F
03/05 14:01, 8F
推
03/05 14:01, , 9F
03/05 14:01, 9F
→
03/05 14:04, , 10F
03/05 14:04, 10F
→
03/05 14:04, , 11F
03/05 14:04, 11F
推
03/05 14:05, , 12F
03/05 14:05, 12F
推
03/05 14:06, , 13F
03/05 14:06, 13F
→
03/05 14:06, , 14F
03/05 14:06, 14F
→
03/05 14:06, , 15F
03/05 14:06, 15F
→
03/05 14:32, , 16F
03/05 14:32, 16F
→
03/05 14:34, , 17F
03/05 14:34, 17F
推
03/05 15:02, , 18F
03/05 15:02, 18F
推
03/05 19:49, , 19F
03/05 19:49, 19F
推
03/05 21:48, , 20F
03/05 21:48, 20F
推
03/06 01:04, , 21F
03/06 01:04, 21F
討論串 (同標題文章)