public static void Run()
 {
     Console.WriteLine("Running LeetCode problems...");
     //TwoSum1.Execute();
     //RemoveDuplicatesFromSortedArray.Execute();
     //RemoveElement.Execute();
     SearchInsertPosition.Execute();
 }
        public void SearchInsertTests()
        {
            SearchInsertPosition obj = new SearchInsertPosition();

            var arr = new int[] { 1, 3, 5, 6 };
            var x   = obj.SearchInsert(arr, 5);//2

            arr = new int[] { 1, 3, 5, 6 };
            x   = obj.SearchInsert(arr, 2);//1

            arr = new int[] { 1, 3, 5, 6 };
            x   = obj.SearchInsert(arr, 7);//4

            arr = new int[] { 1, 3, 5, 6 };
            x   = obj.SearchInsert(arr, 0);//0

            arr = new int[] { 1, 3, 5, 6 };
            x   = obj.SearchInsert(arr, 6);//3
        }
        public void SearchInsertTests()
        {
            var c = new SearchInsertPosition();

            // example1
            int[] nums     = { 1, 3, 5, 6 };
            var   target   = 5;
            var   result   = c.SearchInsert(nums, target);
            var   expected = 2;

            Assert.AreEqual(result, expected);

            // example2
            int[] nums2 = { 1, 3, 5, 6 };
            target   = 2;
            result   = c.SearchInsert(nums2, target);
            expected = 1;
            Assert.AreEqual(result, expected);

            //example3
            int[] nums3 = { 1, 3, 5, 6 };
            target   = 7;
            result   = c.SearchInsert(nums3, target);
            expected = 4;
            Assert.AreEqual(result, expected);

            //example4
            int[] nums4 = { 1, 3, 5, 6 };
            target   = 0;
            result   = c.SearchInsert(nums4, target);
            expected = 0;
            Assert.AreEqual(result, expected);

            //example5
            int[] nums5 = { 1 };
            target   = 0;
            result   = c.SearchInsert(nums5, target);
            expected = 0;
            Assert.AreEqual(result, expected);
        }
示例#4
0
        public void TestName()
        {
            //Given
            var instance = new SearchInsertPosition();
            var nums1    = new int[] { 1, 3, 5, 6 };
            var target1  = 5;
            var nums2    = new int[] { 1, 3, 5, 6 };
            var target2  = 2;
            var nums3    = new int[] { 1, 3, 5, 6 };
            var target3  = 7;
            var nums4    = new int[] { 1, 3, 5, 6 };
            var target4  = 0;
            var nums5    = new int[] { 1 };
            var target5  = 0;

            //When

            //Then
            Assert.Equal(2, instance.SearchInsert(nums1, target1));
            Assert.Equal(1, instance.SearchInsert(nums2, target2));
            Assert.Equal(4, instance.SearchInsert(nums3, target3));
            Assert.Equal(0, instance.SearchInsert(nums4, target4));
            Assert.Equal(0, instance.SearchInsert(nums5, target5));
        }
示例#5
0
        static void Main(string[] args)
        {
            SortedMatrixSearch.Run();
            SparseSearch.Run();
            SearchInRotatedArray.Run();
            GroupAnagrams.Run();
            CombinationsOfNPairsParentheses.Run();
            PermutationWithDuplicates.Run();
            PermutationNoDuplicates.Run();

            var subsetList = new List <List <int> >();

            subsetList = SubsetInSet.FindAllSubsetInSet(new List <int> {
                1, 2, 3
            });
            ReverseLinkedList.Run();
            IsUniqueString.Run();
            StoneDivisionProblem.Run();
            Kangaroo.Run();
            AppleAndOrange.Run();
            AbbreviationProblem.Run();
            FibonacciModifiedProblem.Run();
            RecursiveDigitSum.Run();
            RangeSumOfBST.Run();
            GradingStudentsProblem.Run();
            // XorSequenceProblem.Run();
            CounterGameProblem.Run();
            MaximizingXORProblem.Run();
            LonelyIntegerProblem.Run();
            FlippingBitsProblem.Run();
            QueueUsingTwoStacksProblem.Run();
            GetNodeValue.Run();
            MergeTwoSortedLinkedLists.Run();
            Compare_Two_linked_lists.Run();

            DeleteNodeProblem.Run();
            ArrayManipulationProblem.Run();
            LeftRotationProblem.Run();
            HourGlass2D.Run();
            SimpleTextEditorProblem.Run();
            EqualStacksProblem.Run();
            MaximumElementProblem.Run();
            BinarySearchTreeInsertion.Run();
            TopViewProblem.Run();
            TimeConvertsionProblem.Run();
            BinaryTreePathsProblem.Run();
            IncreasingOrderSearchTree.Run();
            RemoveAllAdjacentDuplicatesInStringWithKLength.Run();
            RemoveAllAdjacentDuplicatesInString.Run();
            CheckStraightLineProblem.Run();
            HouseRobber.Run();
            UniquePathsProblem.Run();
            FirstUniqueCharacterInString.Run();
            BinaryTreeInorderTraversal.Run();
            DailyTemperaturesProblem.Run();
            CountingBitsproblem.Run();
            SortIntegersByTheNumberOf1BitsProblem.Run();
            HammingDistanceProblem.Run();
            RansomNoteProblem.Run();
            ConvertBinaryNumberInLinkedListToIntegerProblem.Run();
            NumberOfStepsToReduceNumberToZeroProblem.Run();
            JewelsAndStones.Run();
            ClimbingStairsProblem.Run();
            BestTimeToBuyAndSellStock.Run();
            MajorityElementProblem.Run();
            MoveZeroesProblem.Run();
            InvertBinaryTree.Run();
            SingleNumberProblem.Run();
            MaximumDepthInTrree.Run();
            MergeTwoBinaryTrees.Run();
            AddBinaryProblem.Run();
            PlusOneProblem.Run();
            LengthOfLastWordProblem.Run();
            KadaneAlgorithmForMaxSubArray.Run();
            KMPAlgorithm.Run();
            CountAndSayProblem.Run();
            SearchInsertPosition.Run();
            ImplementIndexOfString.Run();
            RemoveElement.Run();
            RemoveDuplicatesFromSortedArray.Run();
            MergeTwoSortedLists.Run();
            ValidParentheses.Run();
            LongestCommonPrefix.Run();
            RomanToInteger.Run();
            PalindromeNumber.Run();
            ReverseInteger.Run();
            TwoSumProblem.Run();
            AddOneToNumber.Run();
            MostAmountOfChange.Run();
            #region BinaryTree
            LeastCommonAncestor.Run();
            PrintAllPaths.Run();
            HasPathSum.Run();
            CheckIfBinaryTreeIsBinarySearchTree.Run();
            PrintAllNodesWithRangeInBinarySearchTree.Run();
            UniqueTreeStructureNumber.Run();
            MirrorTree.Run();
            #region BitManuiplation_GetNthNumber
            NumberOfStepsToReduceNumberToZeroProblem.Run();
            CountNumbersOf1InBit.Run();
            ReverseThebitsInInteger.Run();
            PrintBitsInInteger.Run();
            GetNthBit.Run();
            setNthBitTo1.Run();
            SetNthBitTo0.Run();
            #endregion
            MinimumtValueInTrree minValueInTree = new MinimumtValueInTrree();
            minValueInTree.Run();
            #endregion

            #region Recursion
            Chessboard chessboard = new Chessboard();
            chessboard.Run();
            RatPathToMaze ratPathToMaze = new RatPathToMaze();
            ratPathToMaze.Run();
            List <string> anagramList = new List <string>();
            anagramList        = WordAnagram.GenerateWordAnagram("abc");
            Pixel[,] pixelList = new Pixel[3, 3] {
                { new Pixel(0, 0, "red"), new Pixel(0, 1, "green"), new Pixel(0, 2, "green") },
                { new Pixel(1, 0, "red"), new Pixel(1, 1, "green"), new Pixel(1, 2, "green") },
                { new Pixel(2, 0, "red"), new Pixel(2, 1, "green"), new Pixel(2, 2, "green") }
            };
            FillPaint.PaintFill(pixelList, 1, 2, "green", "black");

            BinaryTreesAreTheSame.Run();

            #endregion

            #region General problems
            RotateArrayByKSpaces.Run();

            #region AddtwoNumbersReferencedByTheirDigits
            var addRes = AddtwoNumbersReferencedByTheirDigits.AddNumbers(new int[] { 1, 2, 7 }, new int[] { 9, 4 });
            #endregion

            #region RunLengthEncoding
            var encodedStr = RunLengthEncoding.Encode("aabbbbc");
            var decodedStr = RunLengthEncoding.Decode(encodedStr);
            #endregion

            #region BreakDocumentIntoChunk
            var chunkRes = BreakDocumentIntoChunk.Chunkify("ab:dd:ddfcct:aab:cccc", ':', 5);
            #endregion

            #region GameOfLife
            var gameRes = GameOfLife.GetNextInteration(new int[3, 3] {
                { 1, 0, 0 }, { 0, 1, 1 }, { 1, 0, 0 }
            });
            #endregion .

            #endregion


            #region InsertionSort
            InsertionSort.insertionSort(listToSort);
            #endregion

            #region BinarySearch
            Console.WriteLine(String.Format("%s is present at index: %s", 30, BinarySearch.binarySearch(sortedArray, 30, 0, sortedArray.Length - 1)));
            Console.WriteLine(String.Format("%s is present at index: %s", 4, BinarySearch.binarySearch(sortedArray, 4, 0, sortedArray.Length - 1)));
            Console.WriteLine(String.Format("%s is present at index: %s", 15, BinarySearch.binarySearch(sortedArray, 15, 0, sortedArray.Length - 1)));
            #endregion


            #region MergeSort
            MergeSort.print(listToSort);
            MergeSort.mergeSort(listToSort);
            #endregion


            #region QuickSort
            QuickSort.print(listToSort);
            QuickSort.quickSort(listToSort, 0, listToSort.Length - 1);
            QuickSort.print(listToSort);
            #endregion
        }
示例#6
0
        static public void Main(String[] args)
        {
            TwoSumProblem                 twoSumProblem                     = new TwoSumProblem();
            ReverseProblem                reverseProblem                    = new ReverseProblem();
            IsPalindromeProblem           isPalindromeProblem               = new IsPalindromeProblem();
            MaxAreaProblem                maxAreaProblem                    = new MaxAreaProblem();
            ValidParenthesesProblem       validParenthesesProblem           = new ValidParenthesesProblem();
            LetterComboPhoneNumberProblem letterComboPhoneNumberProblem     = new LetterComboPhoneNumberProblem();
            StockArray                      stockArrayProblem               = new StockArray();
            ClimbingStepsProblem            climbingStepsProblem            = new ClimbingStepsProblem();
            RemoveElementTypeProblem        removeElementTypeProblem        = new RemoveElementTypeProblem();
            ValidAnagram                    validAnagramProblem             = new ValidAnagram();
            ProductOfArrayExceptSelfProblem productOfArrayExceptSelfProblem = new ProductOfArrayExceptSelfProblem();
            SearchInsertPosition            searchInsertPositionProblem     = new SearchInsertPosition();
            RomanToIntt                     romanToIntProblem               = new RomanToIntt();
            FoobarProblems                  foobarProblems                  = new FoobarProblems();
            JumpGame             jumpGame      = new JumpGame();
            RobbingHouses        robbingHouses = new RobbingHouses();
            Power                power         = new Power();
            MoveZeroesProblem    moveZeroes    = new MoveZeroesProblem();
            IsSubsequenceProblem isSubsequence = new IsSubsequenceProblem();

            /*
             * int[] nums = new int[] {2, 11, 14, 17};
             * int target = 16;
             * int [] result = twoSumProblem.TwoSum(nums, target);
             * result.ToList().ForEach(i => Console.WriteLine(i.ToString()));
             */

            /*
             * int x = int.MaxValue;
             * int reversed = reverseProblem.Reverse(x);
             * Console.Writeline(x);
             */

            /*
             * int x = 121;
             * Console.WriteLine(isPalindromeProblem.IsPalindrome(x));
             */

            /*
             * int[] height = new int[] {1, 8, 6, 2, 5, 4, 8, 3, 7};
             * Console.WriteLine(maxAreaProblem.MaxArea(height));
             */

            /*
             * string s = "[([]])";
             * Console.WriteLine(validParenthesesProblem.IsValid(s));
             */

            /*
             * string digits = "";
             * foreach (string s in letterComboPhoneNumberProblem.LetterCombinations(digits))
             * {
             *  Console.WriteLine(s);
             * }
             */

            /*
             * int[] prices = new int[] {7, 1, 5, 3, 6, 4};
             * Console.WriteLine(stockArrayProblem.MaxProfit(prices));
             */

            /*
             * int n = 6;
             * Console.WriteLine(climbingStepsProblem.ClimbStairs(n));
             */

            /*
             * int[] nums = new int[] { 3, 2, 2, 3 };
             * int val = 3;
             * Console.WriteLine(removeElementTypeProblem.RemoveElement(nums, val));
             */

            /*
             * string s = "rat";
             * string t = "car";
             * Console.WriteLine(validAnagramProblem.IsAnagram(s, t));
             */

            /*
             * int[] nums = new int[] { 1, 2, 3, 4 };
             * int[] result = productOfArrayExceptSelfProblem.ProductExceptSelf(nums);
             * result.ToList().ForEach(i => Console.WriteLine(i.ToString()));
             */

            /*
             * int[] nums = new int[] { 2, 3, 5, 6 };
             * int target = 4;
             * Console.WriteLine(searchInsertPositionProblem.SearchInsert(nums, target));
             */

            /*
             * string b = "X";
             * Console.WriteLine(romanToIntProblem.RomanToInt(b));
             */

            /*
             * string[] strs = new string[] { "flower", "flow", "flight" };
             * Console.WriteLine(longestPrefixProblem.LongestCommonPrefix(strs));
             */

            /*
             * List<int> x = new List<int>() { 14, 27, 1, 4, 2, 50, 3, 1 };
             * List<int> y = new List<int>() { 2, 4, -4, 3, 1, 1, 14, 27, 50 };
             * Console.WriteLine(foobarProblems.Solution1(x, y));
             */

            /*
             * Console.WriteLine(foobarProblems.Solution2(90, 7));
             */

            /*
             * Console.WriteLine(foobarProblems.Solution3(0, 1));
             */

            /*
             * Console.WriteLine(foobarProblems.Solution4(2, 1));
             */

            /*
             * int[] nums = new int[] {1, 0, 8, 2, 0, 0, 1 };
             * Console.WriteLine(jumpGame.CanJump(nums));
             */

            /*
             * int[] nums = new int[] {1, 3, 6, 3, 1, 1, 1, 1, 2 };
             * Console.WriteLine(robbingHouses.RobHouse(nums));
             */

            /* recursion practice:::::::::
             * Console.WriteLine(robbingHouses.Factorial(5));
             * Console.WriteLine(robbingHouses.PowerTo(7, 2));
             * Console.WriteLine(robbingHouses.SumTillN(10));
             * Console.WriteLine(robbingHouses.Multiply(10, 5));
             * Console.WriteLine(robbingHouses.PowerToNegativeInt(3, -2));
             */

            /*
             * Console.WriteLine(power.IsPowerOfTwo(0));
             * Console.WriteLine(power.IsPowerOfThree(27));
             * Console.WriteLine(power.IsHappy(19));
             * Console.WriteLine(power.AddDigits(38));
             */

            /*
             * int[] nums = new int[] { 0, 1, 0, 3, 12 };
             * Console.WriteLine(moveZeroes.MoveZeroes(nums));
             */

            Console.WriteLine(isSubsequence.IsSubsequence("bb", "abbc"));
            Console.WriteLine(isSubsequence.CanConstruct("aab", "baa"));

            Console.ReadLine();
        }
示例#7
0
        public int SearchInsert(int[] nums, int target)
        {
            var sol = new SearchInsertPosition(nums, target);

            return(sol.SolutionOne());
        }
示例#8
0
        static void Main(string[] args)
        {
            #region 1. Two Sum

            TwoSums twoSums = new TwoSums(new int[] { 2, 7, 11, 15 }, 18);
            twoSums.PrintExample();

            #endregion

            #region 3. LongestSubstringWithoutRepeatingCharacters

            LongestSubstringWithoutRepeatingCharacters longestSubstringWithoutRepeating = new LongestSubstringWithoutRepeatingCharacters("abcdecb");
            longestSubstringWithoutRepeating.PrintExample();

            #endregion

            #region 7. Reverse Integer

            ReverseInteger reverseInteger = new ReverseInteger(-54321);
            reverseInteger.PrintExample();

            #endregion

            #region 8. String to Integer (atoi)

            StringToInteger stringToInteger = new StringToInteger("  -42");
            stringToInteger.PrintExample();

            #endregion

            #region 9. Palindrome Number

            PalindromeNumber palindromeNumber = new PalindromeNumber(121);
            palindromeNumber.PrintExample();

            #endregion

            #region 20. Valid Parentheses

            ValidParentheses validParentheses = new ValidParentheses("(){[]}");
            validParentheses.PrintExample();

            #endregion

            #region 26. Remove Duplicates from Sorted Array

            RemoveDuplicatesFromSortedArray removeDuplicatesFromSortedArray = new RemoveDuplicatesFromSortedArray(new [] { 1, 2, 3, 3, 4, 5, 5, 5, 5, 5, 5, 6 });
            removeDuplicatesFromSortedArray.PrintExample();

            #endregion

            #region 35. Search Insert Position

            SearchInsertPosition searchInsertPosition = new SearchInsertPosition(new [] { 1, 3, 5, 10 }, 9);
            searchInsertPosition.PrintExample();

            #endregion

            #region 58. Length of Last Word

            LengthOfLastWord lengthOfLastWord = new LengthOfLastWord("Hello World");
            lengthOfLastWord.PrintExample();

            #endregion

            #region 104. Maximum Depth of Binary Tree



            #endregion

            #region 125. Valid Palindrome

            ValidPalindrome validPalindrome = new ValidPalindrome("A man, a plan, a canal: Panama");
            validPalindrome.PrintExample();

            #endregion

            #region 136. Single Number

            SingleNumber singleNumber = new SingleNumber(new [] { 2, 2, 3, 3, 1 });
            singleNumber.PrintExample();

            #endregion

            #region 150. Evaluate Reverse Polish Notation

            EvaluateReversePolishNotation evaluateReversePolishNotation = new EvaluateReversePolishNotation(new [] { "2", "1", "+", "3", "*" });
            evaluateReversePolishNotation.PrintExample();

            #endregion

            #region 155. Min Stack

            MinStack minStack = new MinStack();
            minStack.PrintExample();

            #endregion

            #region 167. Two Sum II - Input array is sorted

            TwoSumII twoSumII = new TwoSumII(new [] { 1, 2, 3, 7 }, 10);
            twoSumII.PrintExample();

            #endregion

            #region 200. Number of Islands

            NumberOfIslands numberOfIslands = new NumberOfIslands(new char[, ]
            {
                { '1', '1', '0', '0', '0' },
                { '1', '1', '0', '0', '0' },
                { '0', '0', '1', '0', '0' },
                { '0', '0', '0', '1', '1' }
            });
            numberOfIslands.PrintExample();

            #endregion

            #region 217. Contains Duplicate

            ContainsDuplicate containsDuplicate = new ContainsDuplicate(new [] { 1, 2, 3, 1 });
            containsDuplicate.PrintExample();

            #endregion

            #region 268. Missing Number

            MissingNumber missingNumber = new MissingNumber(new [] { 9, 6, 4, 2, 3, 5, 7, 0, 1 });
            missingNumber.PrintExample();

            #endregion

            #region 344. Reverse String

            ReverseString reverseString = new ReverseString("A man with a plan");
            reverseString.PrintExample();

            #endregion

            #region 387. First Unique Character in a String

            FirstUniqueCharacterInAString firstUniqueChar = new FirstUniqueCharacterInAString("loveleetcode");
            firstUniqueChar.PrintExample();

            #endregion

            #region 412. FizzBuzz

            FizzBuzz fizzBuzz = new FizzBuzz(15);
            fizzBuzz.PrintExample();

            #endregion

            #region 485. Max Consecutive Ones

            MaxConsecutiveOnes maxConsecutiveOnes = new MaxConsecutiveOnes(new int[] { 1, 1, 0, 1, 1, 1 });
            maxConsecutiveOnes.PrintExample();

            #endregion

            #region 509. Fibonacci Number

            FibonacciNumber fibonacciNumber = new FibonacciNumber(10);
            fibonacciNumber.PrintExample();

            #endregion

            #region 622. Design Circular Queue

            CircularQueue circularQueue = new CircularQueue(1);
            Console.WriteLine("622. Design Circular Queue");
            Console.WriteLine($"Front()   : {circularQueue.Front()}");
            Console.WriteLine($"IsEmpty() : {circularQueue.IsEmpty()}");
            circularQueue.EnQueue(1);
            Console.WriteLine($"EnQueue(1)");
            Console.WriteLine($"IsEmpty() : {circularQueue.IsEmpty()}");
            Console.WriteLine($"IsFull()  : {circularQueue.IsFull()}\n");

            #endregion

            #region 707. Design Linked List

            LinkedList linkedList = new LinkedList(new Node());
            linkedList.AddAtTail(10);
            linkedList.AddAtTail(20);
            linkedList.PrintLinkedList();

            #endregion

            #region 709. To Lower Case

            ToLowerCase toLowerCase = new ToLowerCase("LOVELY");
            toLowerCase.PrintExample();

            #endregion

            #region 739. Daily Temperatures

            DailyTemperatures dailyTemperatures = new DailyTemperatures(new [] { 89, 62, 70, 58, 47, 47, 46, 76, 100, 70 });
            dailyTemperatures.PrintExample();

            #endregion

            #region 747. Largest Number at Least Twice of Others

            LargestNumberAtLeastTwiceOfOthers largestNumberAtLeastTwiceOfOthers = new LargestNumberAtLeastTwiceOfOthers(new [] { 3, 6, 1, 0 });
            largestNumberAtLeastTwiceOfOthers.PrintExample();

            #endregion

            #region 771. Jewels and Stones
            string          j = "aA", s = "aAAbbbb";
            JewelsAndStones jewelsAndStones = new JewelsAndStones(j, s);
            jewelsAndStones.PrintExample();

            #endregion

            #region 832. Flipping an Image
            int[][] flippingImageArray      = new int[3][];
            flippingImageArray[0] = new int[] { 1, 1, 0 };
            flippingImageArray[1] = new int[] { 1, 0, 1 };
            flippingImageArray[2] = new int[] { 0, 0, 0 };
            FlippingAnImage flippingAnImage = new FlippingAnImage(flippingImageArray);
            flippingAnImage.PrintExample();

            #endregion

            #region 917. Reverse Only Letters

            ReverseOnlyLetters reverseOnlyLetters = new ReverseOnlyLetters("Qedo1ct-eeLg=ntse-T!");
            reverseOnlyLetters.PrintExample();

            #endregion


            Console.ReadLine();
        }
示例#9
0
 public void BeforeEach()
 {
     searchInsertPosition = new SearchInsertPosition();
 }
示例#10
0
        public void Given_array_When_search_found_Then_middle()
        {
            var nums = new int[] { 1, 3, 5, 6 };

            Assert.AreEqual(2, SearchInsertPosition.SearchInsert(nums, 5));
        }
示例#11
0
        public void Given_array_When_search_Then_return_end()
        {
            var nums = new int[] { 1, 3 };

            Assert.AreEqual(1, SearchInsertPosition.SearchInsert(nums, 3));
        }
示例#12
0
        public void Given_single_array_When_search_Then_return()
        {
            var nums = new int[] { 1 };

            Assert.AreEqual(1, SearchInsertPosition.SearchInsert(nums, 2));
        }
示例#13
0
        public void Given_array_When_search_Then_first()
        {
            var nums = new int[] { 1, 3, 5 };

            Assert.AreEqual(0, SearchInsertPosition.SearchInsert(nums, 1));
        }