20 মিনিটের পরে কি এমন কোনও নিয়ম রয়েছে যা আপনার কোডিং শুরু করা উচিত, যাই হোক না কেন?
না, তবে আপনি ব্যবসায় নেমে যাওয়ার আগে যদি সমস্যাটি বিশ্লেষণে 20 মিনিট ব্যয় করেন তবে আপনি সম্ভবত ইতিমধ্যে সমস্যায় পড়েছেন। একজন নিয়োগকর্তা যিনি আপনাকে উদ্ধৃত করা প্রশ্নটির মতো প্রশ্ন জিজ্ঞাসা করছেন তারা বেশিরভাগ ক্ষেত্রে আপনার সমস্যার দিকে কীভাবে আগ্রহী তা আগ্রহী, তবে তারা যদি কোডিং সমস্যা হিসাবে এটি জিজ্ঞাসা করেন তবে তারাও কিছু কোড দেখতে চান। আপনার চিন্তা প্রক্রিয়া মাধ্যমে তাদের সাথে কথা বলুন ...
ঠিক আছে, এখানে সুস্পষ্ট পদ্ধতির হিংস্র শক্তি। তিনটি অনুভূমিককে প্রদত্ত যদি আমার একটি সঠিক ত্রিভুজ চিহ্নিত করার উপায় থাকে তবে আমি দুটি পয়েন্টের সমস্ত সংমিশ্রণ এবং ডান ত্রিভুজগুলির সন্ধানের উত্স দিয়ে দৌড়াতে পারি। এটি শক্ত হওয়া উচিত নয় - আমি একটি ফাংশন লিখতে পারি যা পাইথাগোরিয়ান উপপাদ্যকে সঠিক ত্রিভুজ সনাক্ত করতে ব্যবহার করে। এটি আরও সহজ করার জন্য, আমি একটি ফাংশনও লিখব যা দূরত্বের সূত্র ব্যবহার করে দুটি পয়েন্টের মধ্যে দূরত্ব নির্ধারণ করে ...
এই ফাংশনগুলি লিখতে প্রায় তিন মিনিট সময় লাগবে। এখন, প্রশ্নের কয়েক মিনিটের মধ্যে, আপনি ইতিমধ্যে দেখিয়েছেন যে আপনি মৌলিক জ্যামিতিটি মনে করছেন এবং কোডটি কীভাবে লিখতে হবে তা আপনি সত্যই জানেন। এটি আপনাকে কথা বলার জন্য কিছু দেয়:
সুতরাং, আমরা স্পষ্টতই isRightTriangle(p1, p2, p3)
চারটি for
লুপের মাঝখানে ফাংশনটি রাখতে পারি এবং দুটি ভেরিয়েবল পয়েন্টের প্রতিটি জন্য সম্ভাব্য পছন্দগুলি নিয়ে পুনরাবৃত্তি করতে পারি। আসুন দেখুন ... সমস্যাটি 50x50 গ্রিডে উত্স সহ সঠিক ত্রিভুজগুলির সংখ্যা জিজ্ঞাসা করে, তাই নিষ্ঠুর শক্তি পদ্ধতি ব্যবহার করে আমাদের প্রতিটি পয়েন্টের প্রতিটি স্থানাঙ্কের জন্য 50 টি সম্ভাবনা যাচাই করে তোলে। এটি 50 ^ 4 চেকস ... আমি নিশ্চিত যে আমরা আরও ভাল করতে পারি তবে কোডটি সুস্পষ্ট, সুতরাং আমাকে এটি লিখতে দিন ...
সুতরাং এখন আপনি একটি ফাংশন লিখুন যা নেস্টেড for
লুপগুলি ব্যবহার করে এবং isRightTriangle()
আপনি সবে লিখেছেন এমন ফাংশন। আপনি সমস্যাটি সমাধান করেছেন, তবে আপনি কোথায় চলেছেন তা সাক্ষাত্কারকারীর কাছেও যেতে দিয়েছেন। যদি তাদের লক্ষ্যটি ছিল কেবল আপনি কোডটি লিখতে পারেন তা দেখার জন্য, তারা আপনাকে থামতে বলবে। আরও সম্ভবত, কারও সাথে কথা বললে তারা খুশি যে তারা জানে যে তারা কী করছে এবং তারা দেখতে পাবে যে আপনি এটি কতদূর নিয়েছেন। সুতরাং আপনি যেতে ...
এটি লেখার সময় আমার কাছে ঘটেছিল যে আমরা প্রতিসম ব্যবহারের সুযোগ নিতে পারি। আমরা 45 ° লাইনের চারপাশে প্রদত্ত যে কোনও ত্রিভুজকে প্রতিবিম্বিত করতে পারি, সুতরাং আমরা যদি কেবলমাত্র সেই লাইনের একপাশে একটি বিন্দু পরীক্ষা করতে বেছে নিই, আমরা ঠিক যে দুটি ত্রিভুজ খুঁজে পেয়েছি তা আমরা দুবার খুঁজে পেতে পারি ... একবার ত্রিভুজটির জন্য এবং একবার এর প্রতিবিম্ব জন্য। যা চেকের সংখ্যা অর্ধেক করে দেয়। এছাড়াও, এখন এটি তাকান, আমরা দুটি পয়েন্টের মধ্যে দূরত্ব খুঁজতে একটি বর্গমূল নিচ্ছি, কিন্তু তারপরে আমরা কেবল এটি আবার বর্গাকার isRightTriangle()
...
ইত্যাদি। আবার, তারা সাধারণত কোনও নিখুঁত সমাধান দেখতে চায় না, আপনি কীভাবে কোনও সমাধান পেতে পারেন তা তারা দেখতে চায়। আপনার চিন্তা প্রক্রিয়াটি উপরের মতো কিছু হওয়ার দরকার নেই - কেবল উচ্চস্বরে চিন্তা করার আত্মবিশ্বাস অনেক বেশি গণনা করবে। যদি আপনি কোনও ভুল করেন তবে এটি ঘামবেন না - কেবল "হুঁ মম, আমি মনে করি আমি এখানে রেল থেকে নামিয়েছি - আমাকে এক ধাপ পিছনে যেতে দাও ..."