Leetcode – 3289. دو شماره یواشکی Digitville

این یک مشکل آسان با شرح است:
در شهر دیجیت ویل، لیستی از اعداد به نام اعداد وجود داشت که شامل اعداد صحیح از 0 تا n – 1 بود. قرار بود هر عدد دقیقاً یک بار در لیست ظاهر شود، با این حال، دو عدد شیطنت آمیز در یک زمان اضافی پنهان شدند و لیست را طولانی تر کردند. از حد معمول
به عنوان کارآگاه شهر، وظیفه شما این است که این دو شماره یواشکی را پیدا کنید. آرایهای به اندازه دو حاوی دو عدد (به هر ترتیبی) را برگردانید تا آرامش به دیجیتویل بازگردد.
مثال 1:
ورودی: nums = [0,1,1,0]
خروجی: [0,1]
توضیح:
اعداد 0 و 1 هر کدام دو بار در آرایه ظاهر می شوند.
مثال 2:
ورودی: nums = [0,3,2,1,3,2]
خروجی: [2,3]
توضیح:
اعداد 2 و 3 هر کدام دو بار در آرایه ظاهر می شوند.
مثال 3:
ورودی: nums = [7,1,5,4,3,4,6,0,9,5,8,2]
خروجی: [4,5]
توضیح:
اعداد 4 و 5 هر کدام دو بار در آرایه ظاهر می شوند.
محدودیت ها:
2 <= n <= 100
nums.length == n + 2
0 <= اعداد[i] < n
ورودی به گونهای تولید میشود که اعداد دقیقاً شامل دو عنصر تکراری هستند.
این مشکل راههای زیادی برای حل آن دارد، میتوانید از یک مجموعه، نقشه، آرایه به عنوان نقشه استفاده کنید، حتی از بیتها استفاده کنید، اما از آنجایی که این یک مشکل آسان است، شاید نباید به عمق سوراخ خرگوش برویم.
برای راهحل، من با روش سادهای رفتم که آرایه را مرتب میکردم و سپس با تکرار بررسی میکنید که آیا عدد قبلی برابر است یا خیر، اگر بله، به نتیجه من اضافه کنید و تمام:
class Solution {
public int[] getSneakyNumbers(int[] nums) {
// build the response and the pivot for the first item of the response array
int pivot = 0;
int[] response = new int[2];
// sort nums array to make it easy to identify duplication
Arrays.sort(nums);
// iterate and numbers nearby are the ones considered sneaky, grab them and add into the response
for(int i=1;i
زمان اجرا: 2 میلیثانیه، سریعتر از 70.75 درصد موارد ارسالی آنلاین جاوا.
میزان استفاده از حافظه: 44.49 مگابایت، کمتر از 86.86 درصد موارد ارسالی آنلاین جاوا.
اگر مطمئن هستید که بیشتر از دو نفر نخواهد بود، می توانید بررسی بیشتری انجام دهید، اما علاوه بر این، این راه حل بیشتر نیازهای آن را برآورده می کند.
–
همین! اگر مورد دیگری برای بحث وجود دارد، لطفاً نظر خود را بگذارید، اگر چیزی را از دست دادم، به من اطلاع دهید تا بتوانم مطابق با آن بهروزرسانی کنم.
تا پست بعدی! 🙂