ক্রিয়াকলাপ (সন্নিবেশ, সরানো, মুছুন) ক্রমানুসারে একটি স্বেচ্ছাসেবী অনুমতি প্রকাশ করা


9

ধরুন আমার দুটি স্ট্রিং আছে তাদের এবং কল করুন । উভয়ই স্ট্রিং এর কোন পুনরাবৃত্তি অক্ষর নেই।AB

আমি সন্নিবেশ করুন, স্থানান্তর এবং মুছুন অপারেশন সবচেয়ে কম ক্রম যে সক্রিয় কিভাবে জানতে পারেন মধ্যে , যেখানে:AB

  • insert(char, offset)টিপে charদেওয়া offsetস্ট্রিং
  • move(from_offset, to_offset)অক্ষরটি বর্তমানে অফসেটে from_offsetএকটি নতুন অবস্থানে নিয়ে যায় যাতে এটি অফসেট হয়to_offset
  • delete(offset) অক্ষর মুছে ফেলা হয় offset

উদাহরণ প্রয়োগ: আপনি একটি ডাটাবেস ক্যোয়ারী করেন এবং ফলাফলগুলি আপনার ওয়েবসাইটে দেখান show পরে, আপনি ডাটাবেস ক্যোয়ারী পুনরায় চালু করুন এবং আবিষ্কার করেছেন যে ফলাফলগুলি পরিবর্তন হয়েছে। আপনি বর্তমানে সর্বনিম্ন ডিওএম অপারেশন ব্যবহার করে ডাটাবেসে যা আছে তার সাথে মিল রাখতে পৃষ্ঠায় যা রয়েছে তা পরিবর্তন করতে চান। অপারেশনের সংক্ষিপ্ততর ক্রমটি কেন চান তা দুটি কারণ রয়েছে। প্রথম, দক্ষতা। যখন মাত্র কয়েক রেকর্ড পরিবর্তন, আপনি কি নিশ্চিত যে আপনি কি করতে করতে চাই বরং , DOM, অপারেশন যেহেতু তারা ব্যয়বহুল। দ্বিতীয়ত, সঠিকতা। যদি কোনও আইটেম এক অবস্থান থেকে অন্য অবস্থানে চলে যায় তবে আপনি যুক্ত ডোম নোডগুলিকে বিনষ্ট না করে এবং পুনরায় তৈরি না করেই একক ক্রিয়ায় সরিয়ে নিতে চান। অন্যথায় আপনি ফোকাসের অবস্থা, উপাদানগুলির বিষয়বস্তু এবং আরও হারাবেন ।O(1)O(n)<input>

উত্তর:


10

আমি সম্পাদনা দূরত্ব অ্যালগরিদম একবার দেখে পরামর্শ দিই । কেবল দূরত্ব গণনা করার পরিবর্তে, আপনি অ্যারে দিয়ে আপনার সর্বনিম্ন ওজনের পথটি রেকর্ড করতে চান এবং এটি ফিরে আসতে চান।


5
আসলে, যেহেতু কোনও পুনরাবৃত্তি নেই, এটি উলামের দূরত্বের সমস্যা নামক একটি সামান্য সরল সমস্যা। আপনি যখন সম্পাদনা দূরত্বের অ্যালগরিদম ব্যবহার করতে পারেন, ততক্ষণে
সুরেশ

1
সম্পাদনা দুরত্ব সাধারণত moveঅপারেশনগুলি কভার করে না , সুতরাং স্কোরটির ব্যাখ্যা দেওয়ার সময় আপনাকে বিভিন্ন হতে হতে পারে।
রাফেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.