From 1f23b9b72ab775e78958f032eee24b3627033f01 Mon Sep 17 00:00:00 2001 From: ductnn Date: Mon, 11 Dec 2023 12:38:17 +0700 Subject: [PATCH] [refactor] --- .../greatestCommonDivisorOfStrings.go | 0 .../kidsWithTheGreatestNumberOfCandies.go | 0 .../reverseWordsInaString.go | 0 .../mergeStringsAlternately.go | 0 .../productOfArrayExceptSelf.go | 0 .../increasingTripletSubsequence.go | 0 .../reverseVowelsOfaString.go | 0 .../stringCompression.go | 0 .../605.CanPlaceFlowers/canPlaceFlowers.go | 0 .../guessNumberHigherOrLower.go | 0 .../uniqueNumberOfOccurrences.go | 0 .../determineIfTwoStringsAreClose.go | 0 .../findTheDifferenceOfTwoArrays.go | 0 .../equalRowAndColumnPairs.go | 0 .../findTheHighestAltitude.go | 0 .../724.FindPivotIndex/findPivotIndex.go | 0 .../maxConsecutiveOnesIII.go | 0 ...NumberOfVowelsInASubstringOfGivenLength.go | 0 ...estSubarrayOf1_sAfterDeletingOneElement.go | 0 .../maximumAverageSubarrayI.go | 54 +++++++++++++++++++ .../containerWithMostWater.go | 0 .../maxNumberOfK-SumPairs.go | 0 .../283.MoveZeroes/moveZeroes.go | 0 .../392.IsSubsequence/isSubsequence.go | 0 24 files changed, 54 insertions(+) rename leetcode/leetcode75/{ => ArrayString}/1071.GreatestCommonDivisorOfStrings/greatestCommonDivisorOfStrings.go (100%) rename leetcode/leetcode75/{ => ArrayString}/1431.KidsWithTheGreatestNumberOfCandies/kidsWithTheGreatestNumberOfCandies.go (100%) rename leetcode/leetcode75/{ => ArrayString}/151.ReverseWordsInaString/reverseWordsInaString.go (100%) rename leetcode/leetcode75/{ => ArrayString}/1768.MergeStringsAlternately/mergeStringsAlternately.go (100%) rename leetcode/leetcode75/{ => ArrayString}/238.ProductOfArrayExceptSelf/productOfArrayExceptSelf.go (100%) rename leetcode/leetcode75/{ => ArrayString}/334.IncreasingTripletSubsequence/increasingTripletSubsequence.go (100%) rename leetcode/leetcode75/{ => ArrayString}/345.ReverseVowelsOfaString/reverseVowelsOfaString.go (100%) rename leetcode/leetcode75/{ => ArrayString}/443.StringCompression/stringCompression.go (100%) rename leetcode/leetcode75/{ => ArrayString}/605.CanPlaceFlowers/canPlaceFlowers.go (100%) rename leetcode/leetcode75/{ => BinarySearch}/374.GuessNumberHigherOrLower/guessNumberHigherOrLower.go (100%) rename leetcode/leetcode75/{ => HashMapSet}/1207.UniqueNumberOfOccurrences/uniqueNumberOfOccurrences.go (100%) rename leetcode/leetcode75/{ => HashMapSet}/1657.DetermineIfTwoStringsAreClose/determineIfTwoStringsAreClose.go (100%) rename leetcode/leetcode75/{ => HashMapSet}/2215.FindTheDifferenceOfTwoArrays/findTheDifferenceOfTwoArrays.go (100%) rename leetcode/leetcode75/{ => HashMapSet}/2352.EqualRowAndColumnPairs/equalRowAndColumnPairs.go (100%) rename leetcode/leetcode75/{ => PrefixSum}/1732.FindTheHighestAltitude/findTheHighestAltitude.go (100%) rename leetcode/leetcode75/{ => PrefixSum}/724.FindPivotIndex/findPivotIndex.go (100%) rename leetcode/leetcode75/{ => SlidingWindow}/1004.MaxConsecutiveOnesIII/maxConsecutiveOnesIII.go (100%) rename leetcode/leetcode75/{ => SlidingWindow}/1456.MaximumNumberOfVowelsInASubstringOfGivenLength/maximumNumberOfVowelsInASubstringOfGivenLength.go (100%) rename leetcode/leetcode75/{ => SlidingWindow}/1493.LongestSubarrayOf1_sAfterDeletingOneElement/longestSubarrayOf1_sAfterDeletingOneElement.go (100%) create mode 100644 leetcode/leetcode75/SlidingWindow/643.MaximumAverageSubarrayI/maximumAverageSubarrayI.go rename leetcode/leetcode75/{ => TwoPointers}/11.ContainerWithMostWater/containerWithMostWater.go (100%) rename leetcode/leetcode75/{ => TwoPointers}/1679.MaxNumberOfK-SumPairs/maxNumberOfK-SumPairs.go (100%) rename leetcode/leetcode75/{ => TwoPointers}/283.MoveZeroes/moveZeroes.go (100%) rename leetcode/leetcode75/{ => TwoPointers}/392.IsSubsequence/isSubsequence.go (100%) diff --git a/leetcode/leetcode75/1071.GreatestCommonDivisorOfStrings/greatestCommonDivisorOfStrings.go b/leetcode/leetcode75/ArrayString/1071.GreatestCommonDivisorOfStrings/greatestCommonDivisorOfStrings.go similarity index 100% rename from leetcode/leetcode75/1071.GreatestCommonDivisorOfStrings/greatestCommonDivisorOfStrings.go rename to leetcode/leetcode75/ArrayString/1071.GreatestCommonDivisorOfStrings/greatestCommonDivisorOfStrings.go diff --git a/leetcode/leetcode75/1431.KidsWithTheGreatestNumberOfCandies/kidsWithTheGreatestNumberOfCandies.go b/leetcode/leetcode75/ArrayString/1431.KidsWithTheGreatestNumberOfCandies/kidsWithTheGreatestNumberOfCandies.go similarity index 100% rename from leetcode/leetcode75/1431.KidsWithTheGreatestNumberOfCandies/kidsWithTheGreatestNumberOfCandies.go rename to leetcode/leetcode75/ArrayString/1431.KidsWithTheGreatestNumberOfCandies/kidsWithTheGreatestNumberOfCandies.go diff --git a/leetcode/leetcode75/151.ReverseWordsInaString/reverseWordsInaString.go b/leetcode/leetcode75/ArrayString/151.ReverseWordsInaString/reverseWordsInaString.go similarity index 100% rename from leetcode/leetcode75/151.ReverseWordsInaString/reverseWordsInaString.go rename to leetcode/leetcode75/ArrayString/151.ReverseWordsInaString/reverseWordsInaString.go diff --git a/leetcode/leetcode75/1768.MergeStringsAlternately/mergeStringsAlternately.go b/leetcode/leetcode75/ArrayString/1768.MergeStringsAlternately/mergeStringsAlternately.go similarity index 100% rename from leetcode/leetcode75/1768.MergeStringsAlternately/mergeStringsAlternately.go rename to leetcode/leetcode75/ArrayString/1768.MergeStringsAlternately/mergeStringsAlternately.go diff --git a/leetcode/leetcode75/238.ProductOfArrayExceptSelf/productOfArrayExceptSelf.go b/leetcode/leetcode75/ArrayString/238.ProductOfArrayExceptSelf/productOfArrayExceptSelf.go similarity index 100% rename from leetcode/leetcode75/238.ProductOfArrayExceptSelf/productOfArrayExceptSelf.go rename to leetcode/leetcode75/ArrayString/238.ProductOfArrayExceptSelf/productOfArrayExceptSelf.go diff --git a/leetcode/leetcode75/334.IncreasingTripletSubsequence/increasingTripletSubsequence.go b/leetcode/leetcode75/ArrayString/334.IncreasingTripletSubsequence/increasingTripletSubsequence.go similarity index 100% rename from leetcode/leetcode75/334.IncreasingTripletSubsequence/increasingTripletSubsequence.go rename to leetcode/leetcode75/ArrayString/334.IncreasingTripletSubsequence/increasingTripletSubsequence.go diff --git a/leetcode/leetcode75/345.ReverseVowelsOfaString/reverseVowelsOfaString.go b/leetcode/leetcode75/ArrayString/345.ReverseVowelsOfaString/reverseVowelsOfaString.go similarity index 100% rename from leetcode/leetcode75/345.ReverseVowelsOfaString/reverseVowelsOfaString.go rename to leetcode/leetcode75/ArrayString/345.ReverseVowelsOfaString/reverseVowelsOfaString.go diff --git a/leetcode/leetcode75/443.StringCompression/stringCompression.go b/leetcode/leetcode75/ArrayString/443.StringCompression/stringCompression.go similarity index 100% rename from leetcode/leetcode75/443.StringCompression/stringCompression.go rename to leetcode/leetcode75/ArrayString/443.StringCompression/stringCompression.go diff --git a/leetcode/leetcode75/605.CanPlaceFlowers/canPlaceFlowers.go b/leetcode/leetcode75/ArrayString/605.CanPlaceFlowers/canPlaceFlowers.go similarity index 100% rename from leetcode/leetcode75/605.CanPlaceFlowers/canPlaceFlowers.go rename to leetcode/leetcode75/ArrayString/605.CanPlaceFlowers/canPlaceFlowers.go diff --git a/leetcode/leetcode75/374.GuessNumberHigherOrLower/guessNumberHigherOrLower.go b/leetcode/leetcode75/BinarySearch/374.GuessNumberHigherOrLower/guessNumberHigherOrLower.go similarity index 100% rename from leetcode/leetcode75/374.GuessNumberHigherOrLower/guessNumberHigherOrLower.go rename to leetcode/leetcode75/BinarySearch/374.GuessNumberHigherOrLower/guessNumberHigherOrLower.go diff --git a/leetcode/leetcode75/1207.UniqueNumberOfOccurrences/uniqueNumberOfOccurrences.go b/leetcode/leetcode75/HashMapSet/1207.UniqueNumberOfOccurrences/uniqueNumberOfOccurrences.go similarity index 100% rename from leetcode/leetcode75/1207.UniqueNumberOfOccurrences/uniqueNumberOfOccurrences.go rename to leetcode/leetcode75/HashMapSet/1207.UniqueNumberOfOccurrences/uniqueNumberOfOccurrences.go diff --git a/leetcode/leetcode75/1657.DetermineIfTwoStringsAreClose/determineIfTwoStringsAreClose.go b/leetcode/leetcode75/HashMapSet/1657.DetermineIfTwoStringsAreClose/determineIfTwoStringsAreClose.go similarity index 100% rename from leetcode/leetcode75/1657.DetermineIfTwoStringsAreClose/determineIfTwoStringsAreClose.go rename to leetcode/leetcode75/HashMapSet/1657.DetermineIfTwoStringsAreClose/determineIfTwoStringsAreClose.go diff --git a/leetcode/leetcode75/2215.FindTheDifferenceOfTwoArrays/findTheDifferenceOfTwoArrays.go b/leetcode/leetcode75/HashMapSet/2215.FindTheDifferenceOfTwoArrays/findTheDifferenceOfTwoArrays.go similarity index 100% rename from leetcode/leetcode75/2215.FindTheDifferenceOfTwoArrays/findTheDifferenceOfTwoArrays.go rename to leetcode/leetcode75/HashMapSet/2215.FindTheDifferenceOfTwoArrays/findTheDifferenceOfTwoArrays.go diff --git a/leetcode/leetcode75/2352.EqualRowAndColumnPairs/equalRowAndColumnPairs.go b/leetcode/leetcode75/HashMapSet/2352.EqualRowAndColumnPairs/equalRowAndColumnPairs.go similarity index 100% rename from leetcode/leetcode75/2352.EqualRowAndColumnPairs/equalRowAndColumnPairs.go rename to leetcode/leetcode75/HashMapSet/2352.EqualRowAndColumnPairs/equalRowAndColumnPairs.go diff --git a/leetcode/leetcode75/1732.FindTheHighestAltitude/findTheHighestAltitude.go b/leetcode/leetcode75/PrefixSum/1732.FindTheHighestAltitude/findTheHighestAltitude.go similarity index 100% rename from leetcode/leetcode75/1732.FindTheHighestAltitude/findTheHighestAltitude.go rename to leetcode/leetcode75/PrefixSum/1732.FindTheHighestAltitude/findTheHighestAltitude.go diff --git a/leetcode/leetcode75/724.FindPivotIndex/findPivotIndex.go b/leetcode/leetcode75/PrefixSum/724.FindPivotIndex/findPivotIndex.go similarity index 100% rename from leetcode/leetcode75/724.FindPivotIndex/findPivotIndex.go rename to leetcode/leetcode75/PrefixSum/724.FindPivotIndex/findPivotIndex.go diff --git a/leetcode/leetcode75/1004.MaxConsecutiveOnesIII/maxConsecutiveOnesIII.go b/leetcode/leetcode75/SlidingWindow/1004.MaxConsecutiveOnesIII/maxConsecutiveOnesIII.go similarity index 100% rename from leetcode/leetcode75/1004.MaxConsecutiveOnesIII/maxConsecutiveOnesIII.go rename to leetcode/leetcode75/SlidingWindow/1004.MaxConsecutiveOnesIII/maxConsecutiveOnesIII.go diff --git a/leetcode/leetcode75/1456.MaximumNumberOfVowelsInASubstringOfGivenLength/maximumNumberOfVowelsInASubstringOfGivenLength.go b/leetcode/leetcode75/SlidingWindow/1456.MaximumNumberOfVowelsInASubstringOfGivenLength/maximumNumberOfVowelsInASubstringOfGivenLength.go similarity index 100% rename from leetcode/leetcode75/1456.MaximumNumberOfVowelsInASubstringOfGivenLength/maximumNumberOfVowelsInASubstringOfGivenLength.go rename to leetcode/leetcode75/SlidingWindow/1456.MaximumNumberOfVowelsInASubstringOfGivenLength/maximumNumberOfVowelsInASubstringOfGivenLength.go diff --git a/leetcode/leetcode75/1493.LongestSubarrayOf1_sAfterDeletingOneElement/longestSubarrayOf1_sAfterDeletingOneElement.go b/leetcode/leetcode75/SlidingWindow/1493.LongestSubarrayOf1_sAfterDeletingOneElement/longestSubarrayOf1_sAfterDeletingOneElement.go similarity index 100% rename from leetcode/leetcode75/1493.LongestSubarrayOf1_sAfterDeletingOneElement/longestSubarrayOf1_sAfterDeletingOneElement.go rename to leetcode/leetcode75/SlidingWindow/1493.LongestSubarrayOf1_sAfterDeletingOneElement/longestSubarrayOf1_sAfterDeletingOneElement.go diff --git a/leetcode/leetcode75/SlidingWindow/643.MaximumAverageSubarrayI/maximumAverageSubarrayI.go b/leetcode/leetcode75/SlidingWindow/643.MaximumAverageSubarrayI/maximumAverageSubarrayI.go new file mode 100644 index 0000000..a571cf3 --- /dev/null +++ b/leetcode/leetcode75/SlidingWindow/643.MaximumAverageSubarrayI/maximumAverageSubarrayI.go @@ -0,0 +1,54 @@ +package main + +import ( + "fmt" +) + +func findMaxAverage(nums []int, k int) float64 { + sum := 0 + for i := 0; i < k; i++ { + sum += nums[i] + } + + result := sum + for i := k; i < len(nums); i++ { + sum += nums[i] - nums[i-k] + if result < sum { + result = sum + } + } + + return float64(result) / float64(k) +} + +func findMaxAverage1(nums []int, k int) float64 { + j := 0 + res := average(nums[:k]) + for i := k; i <= len(nums); i++ { + res = max(res, average(nums[j:i])) + j++ + } + return res +} + +func average(temp []int) float64 { + sum := 0 + for i := range temp { + sum += temp[i] + } + return float64(sum) / float64(len(temp)) +} + +func max(a, b float64) float64 { + if a < b { + return b + } + return a +} + +func main() { + nums := []int{1, 12, -5, -6, 50, 3} + k := 4 + + fmt.Println(findMaxAverage(nums, k)) +} diff --git a/leetcode/leetcode75/11.ContainerWithMostWater/containerWithMostWater.go b/leetcode/leetcode75/TwoPointers/11.ContainerWithMostWater/containerWithMostWater.go similarity index 100% rename from leetcode/leetcode75/11.ContainerWithMostWater/containerWithMostWater.go rename to leetcode/leetcode75/TwoPointers/11.ContainerWithMostWater/containerWithMostWater.go diff --git a/leetcode/leetcode75/1679.MaxNumberOfK-SumPairs/maxNumberOfK-SumPairs.go b/leetcode/leetcode75/TwoPointers/1679.MaxNumberOfK-SumPairs/maxNumberOfK-SumPairs.go similarity index 100% rename from leetcode/leetcode75/1679.MaxNumberOfK-SumPairs/maxNumberOfK-SumPairs.go rename to leetcode/leetcode75/TwoPointers/1679.MaxNumberOfK-SumPairs/maxNumberOfK-SumPairs.go diff --git a/leetcode/leetcode75/283.MoveZeroes/moveZeroes.go b/leetcode/leetcode75/TwoPointers/283.MoveZeroes/moveZeroes.go similarity index 100% rename from leetcode/leetcode75/283.MoveZeroes/moveZeroes.go rename to leetcode/leetcode75/TwoPointers/283.MoveZeroes/moveZeroes.go diff --git a/leetcode/leetcode75/392.IsSubsequence/isSubsequence.go b/leetcode/leetcode75/TwoPointers/392.IsSubsequence/isSubsequence.go similarity index 100% rename from leetcode/leetcode75/392.IsSubsequence/isSubsequence.go rename to leetcode/leetcode75/TwoPointers/392.IsSubsequence/isSubsequence.go