remove: legacy solutions
This commit is contained in:
@@ -1,24 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.5.2.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "largestGoodInteger", "largestGoodInteger.csproj", "{DF73131C-3A52-FFDC-7C0C-19190AA3E331}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{DF73131C-3A52-FFDC-7C0C-19190AA3E331}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{DF73131C-3A52-FFDC-7C0C-19190AA3E331}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{DF73131C-3A52-FFDC-7C0C-19190AA3E331}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{DF73131C-3A52-FFDC-7C0C-19190AA3E331}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {E9F3A871-90C4-4B8E-81E2-B0AF873694BF}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@@ -1,63 +0,0 @@
|
|||||||
public class Solution {
|
|
||||||
public string LargestGoodInteger(string num)
|
|
||||||
{
|
|
||||||
// var count = 0;
|
|
||||||
// char lastNum = 'a';
|
|
||||||
// var numList = new List<int>();
|
|
||||||
// for (var i = 0; i < num.Length; i++)
|
|
||||||
// {
|
|
||||||
// if (num[i] == lastNum)
|
|
||||||
// {
|
|
||||||
// count++;
|
|
||||||
// if (count == 3)
|
|
||||||
// {
|
|
||||||
// numList.Add(int.Parse(num[i].ToString()));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// count = 1;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// lastNum = num[i];
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (numList.Count == 0)
|
|
||||||
// {
|
|
||||||
// return "";
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// var a = numList.Max().ToString();
|
|
||||||
// return $"{a}{a}{a}";
|
|
||||||
// }
|
|
||||||
|
|
||||||
string max = "";
|
|
||||||
|
|
||||||
for (int i = 0; i < num.Length - 2; i++)
|
|
||||||
{
|
|
||||||
if (num[i] == num[i + 1] && num[i] == num[i + 2])
|
|
||||||
{
|
|
||||||
string current = $"{num[i]}{num[i]}{num[i]}";
|
|
||||||
|
|
||||||
if (max == "") max = current;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (int.Parse(current) > int.Parse(max))
|
|
||||||
max = current;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return max;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class program
|
|
||||||
{
|
|
||||||
static void Main()
|
|
||||||
{
|
|
||||||
var solution = new Solution();
|
|
||||||
|
|
||||||
Console.WriteLine(solution.LargestGoodInteger("6777133339"));
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,23 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func LargestGoodInteger(num string) string {
|
|
||||||
max := ""
|
|
||||||
|
|
||||||
for i := 0; i < len(num)-2; i++ {
|
|
||||||
if num[i] == num[i+1] && num[i] == num[i+2] {
|
|
||||||
current := string([]byte{num[i], num[i], num[i]})
|
|
||||||
|
|
||||||
if current > max {
|
|
||||||
max = current
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return max
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
fmt.Println(LargestGoodInteger("7636669283"))
|
|
||||||
}
|
|
@@ -1,24 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.5.2.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductQueries", "C#\ProductQueries.csproj", "{412F89C4-B1BF-D819-298B-9C873A098742}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{412F89C4-B1BF-D819-298B-9C873A098742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{412F89C4-B1BF-D819-298B-9C873A098742}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{412F89C4-B1BF-D819-298B-9C873A098742}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{412F89C4-B1BF-D819-298B-9C873A098742}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {BDF3A5A3-29B8-4169-8A46-A13A7DE900D8}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,69 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
public class Solution
|
|
||||||
{
|
|
||||||
public int[] ProductQueries(int n, int[][] queries)
|
|
||||||
{
|
|
||||||
// 1. n => calculate in powers of 2
|
|
||||||
// 2. get number array without 0
|
|
||||||
var powers = CalPower(n);
|
|
||||||
|
|
||||||
return CalQueries(powers, queries);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private int[] CalPower(int n)
|
|
||||||
{
|
|
||||||
var result = new List<int>();
|
|
||||||
|
|
||||||
while (n > 0)
|
|
||||||
{
|
|
||||||
var num = n % 2;
|
|
||||||
result.Add(num);
|
|
||||||
n /= 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
var newResult = new List<int>();
|
|
||||||
for (var i = 0; i < result.Count; i++)
|
|
||||||
{
|
|
||||||
if (result[i] != 0)
|
|
||||||
{
|
|
||||||
var ans = (int)Math.Pow(2, i);
|
|
||||||
newResult.Add(ans);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return newResult.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
private int[] CalQueries(int[] powers, int[][] queries)
|
|
||||||
{
|
|
||||||
const int MOD = 1000000007;
|
|
||||||
var result = new List<int>();
|
|
||||||
|
|
||||||
foreach (var query in queries)
|
|
||||||
{
|
|
||||||
long count = 1;
|
|
||||||
for (var i = query[0]; i <= query[1]; i++)
|
|
||||||
{
|
|
||||||
count = (count * powers[i]) % MOD;
|
|
||||||
}
|
|
||||||
result.Add(count);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result.ToArray();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
static void Main()
|
|
||||||
{
|
|
||||||
var Solution = new Solution();
|
|
||||||
|
|
||||||
var ans = Solution.ProductQueries(15, [[0, 1], [2, 2], [0, 3]]);
|
|
||||||
Console.WriteLine(string.Join(", ", ans));
|
|
||||||
|
|
||||||
ans = Solution.ProductQueries(919, [[5,5],[4,4],[0,1],[1,5],[4,6],[6,6],[5,6],[0,3],[5,5],[5,6],[1,2],[3,5],[3,6],[5,5],[4,4],[1,1],[2,4],[4,5],[4,4],[5,6],[0,4],[3,3],[0,4],[0,5],[4,4],[5,5],[4,6],[4,5],[0,4],[6,6],[6,6],[6,6],[2,2],[0,5],[1,4],[0,3],[2,4],[5,5],[6,6],[2,2],[2,3],[5,5],[0,6],[3,3],[6,6],[4,4],[0,0],[0,2],[6,6],[6,6],[3,6],[0,4],[6,6],[2,2],[4,6]]);
|
|
||||||
Console.WriteLine(string.Join(", ", ans));
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,5 +0,0 @@
|
|||||||
Given a positive integer n, there exists a 0-indexed array called powers, composed of the minimum number of powers of 2 that sum to n. The array is sorted in non-decreasing order, and there is only one way to form the array.
|
|
||||||
|
|
||||||
You are also given a 0-indexed 2D integer array queries, where queries[i] = [lefti, righti]. Each queries[i] represents a query where you have to find the product of all powers[j] with lefti <= j <= righti.
|
|
||||||
|
|
||||||
Return an array answers, equal in length to queries, where answers[i] is the answer to the ith query. Since the answer to the ith query may be too large, each answers[i] should be returned modulo 109 + 7.
|
|
@@ -1,24 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.5.2.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "numberOfWays", "numberOfWays.csproj", "{1E81E272-AF2C-9CB4-F90B-0AAC263D10DC}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{1E81E272-AF2C-9CB4-F90B-0AAC263D10DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{1E81E272-AF2C-9CB4-F90B-0AAC263D10DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{1E81E272-AF2C-9CB4-F90B-0AAC263D10DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{1E81E272-AF2C-9CB4-F90B-0AAC263D10DC}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {AD18FC84-E2FB-4382-96DF-8AE7E50C1401}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@@ -1,48 +0,0 @@
|
|||||||
// knapsack problem
|
|
||||||
public class Solution
|
|
||||||
{
|
|
||||||
public int NumberOfWays(int n, int x)
|
|
||||||
{
|
|
||||||
const int MOD = 1_000_000_007;
|
|
||||||
// list all the powers which smaller than n
|
|
||||||
var powers = new List<int>();
|
|
||||||
var num = 1;
|
|
||||||
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
int pow = (int)Math.Pow(num, x);
|
|
||||||
if (pow > n)
|
|
||||||
break;
|
|
||||||
powers.Add(pow);
|
|
||||||
num++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// dynamic programming
|
|
||||||
var dp = new int[n + 1];
|
|
||||||
dp[0] = 1;
|
|
||||||
|
|
||||||
foreach (var power in powers)
|
|
||||||
{
|
|
||||||
for (var i = n; i >= power; i--)
|
|
||||||
{
|
|
||||||
dp[i] = (dp[i] + dp[i - power]) % MOD;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dp[n];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
static void Main()
|
|
||||||
{
|
|
||||||
var solution = new Solution();
|
|
||||||
|
|
||||||
Console.WriteLine(solution.NumberOfWays(4, 1));
|
|
||||||
Console.WriteLine(solution.NumberOfWays(100, 3));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,38 +0,0 @@
|
|||||||
public class Solution
|
|
||||||
{
|
|
||||||
public int AreaOfMaxDiagonal(int[][] dimensions)
|
|
||||||
{
|
|
||||||
int max = 0;
|
|
||||||
int maxArea = 0;
|
|
||||||
|
|
||||||
foreach (var dimension in dimensions)
|
|
||||||
{
|
|
||||||
var dimensionSqrt = dimension[0] * dimension[0] + dimension[1] * dimension[1];
|
|
||||||
var area = dimension[0] * dimension[1];
|
|
||||||
if (dimensionSqrt > max)
|
|
||||||
{
|
|
||||||
max = dimensionSqrt;
|
|
||||||
maxArea = area;
|
|
||||||
}
|
|
||||||
else if (dimensionSqrt == max)
|
|
||||||
{
|
|
||||||
maxArea = Math.Max(maxArea, area);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return maxArea;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Program
|
|
||||||
{
|
|
||||||
public static void Main()
|
|
||||||
{
|
|
||||||
var Solution = new Solution();
|
|
||||||
|
|
||||||
var dimensions = new int[][] { [6,5],[8,6],[2,10],[8,1],[9,2],[3,5],[3,5]};
|
|
||||||
|
|
||||||
var result = Solution.AreaOfMaxDiagonal(dimensions);
|
|
||||||
Console.WriteLine(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,27 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"math"
|
|
||||||
)
|
|
||||||
|
|
||||||
func areaOfMaxDiagonal(dimensions [][]int) int{
|
|
||||||
maxDiagonal := 0
|
|
||||||
maxArea := 0
|
|
||||||
|
|
||||||
for _, dimension := range dimensions{
|
|
||||||
l := dimension[0]
|
|
||||||
w := dimension[1]
|
|
||||||
diagonalSquare := l * l + w * w
|
|
||||||
area := l * w
|
|
||||||
|
|
||||||
if diagonalSquare > maxDiagonal{
|
|
||||||
maxDiagonal = diagonalSquare
|
|
||||||
maxArea = area
|
|
||||||
}else if diagonalSquare == maxDiagonal{
|
|
||||||
maxArea = int(math.Max(float64(maxArea), float64(area)))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return maxArea
|
|
||||||
}
|
|
@@ -1,24 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.5.2.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimumArea", "MinimumArea.csproj", "{61A8B87F-638B-4246-13C4-CC226CFBBEA5}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{61A8B87F-638B-4246-13C4-CC226CFBBEA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{61A8B87F-638B-4246-13C4-CC226CFBBEA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{61A8B87F-638B-4246-13C4-CC226CFBBEA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{61A8B87F-638B-4246-13C4-CC226CFBBEA5}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {C6FDF6F7-60CD-4B35-B619-6F79B7243CA7}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,28 +0,0 @@
|
|||||||
public class Solution {
|
|
||||||
public int MinimumArea(int[][] grid)
|
|
||||||
{
|
|
||||||
var x = grid[0].Length;
|
|
||||||
var y = grid.Length;
|
|
||||||
|
|
||||||
int min_x = x;
|
|
||||||
int max_x = 0;
|
|
||||||
int min_y = y;
|
|
||||||
int max_y = 0;
|
|
||||||
|
|
||||||
for (var i = 0; i < x; i++)
|
|
||||||
{
|
|
||||||
for (var j = 0; j < y; j++)
|
|
||||||
{
|
|
||||||
if (grid[j][i])
|
|
||||||
{
|
|
||||||
min_x = Math.Min(min_x, i);
|
|
||||||
max_x = Math.Max(max_x, i);
|
|
||||||
min_y = Math.Min(min_y, j);
|
|
||||||
max_y = Math.Max(max_y, j);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (max_x - min_x + 1) * (max_y - min_y + 1);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,40 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func minimumArea(grid [][]int) int {
|
|
||||||
row := len(grid)
|
|
||||||
col := len(grid[0])
|
|
||||||
|
|
||||||
min_x := col
|
|
||||||
max_x := 0
|
|
||||||
min_y := row
|
|
||||||
max_y := 0
|
|
||||||
|
|
||||||
for i:=0; i<row; i++{
|
|
||||||
for j:=0; j<col; j++{
|
|
||||||
if grid[i][j] == 1{
|
|
||||||
min_x = Min(min_x, j)
|
|
||||||
max_x = Max(max_x, j)
|
|
||||||
min_y = Min(min_y, i)
|
|
||||||
max_y = Max(max_y, i)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (max_x-min_x+1) * (max_y-min_y+1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Min(a, b int)int{
|
|
||||||
if a < b {
|
|
||||||
return a
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
func Max(a, b int)int{
|
|
||||||
if a > b{
|
|
||||||
return a
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
@@ -1,21 +0,0 @@
|
|||||||
public class Solution {
|
|
||||||
public bool IsPowerOfThree(int n) {
|
|
||||||
if(n <= 0)
|
|
||||||
return false;
|
|
||||||
if(n == 1)
|
|
||||||
return true;
|
|
||||||
if(n % 3 != 0)
|
|
||||||
return false;
|
|
||||||
return IsPowerOfThree(n/3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class program{
|
|
||||||
static void Main(){
|
|
||||||
var Solution = new Solution();
|
|
||||||
|
|
||||||
Console.WriteLine(Solution.IsPowerOfThree(9));
|
|
||||||
Console.WriteLine(Solution.IsPowerOfThree(0));
|
|
||||||
Console.WriteLine(Solution.IsPowerOfThree(-1));
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,22 +0,0 @@
|
|||||||
Given an integer n, return true if it is a power of three. Otherwise, return false.
|
|
||||||
|
|
||||||
An integer n is a power of three, if there exists an integer x such that n == 3x.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Example 1:
|
|
||||||
|
|
||||||
Input: n = 27
|
|
||||||
Output: true
|
|
||||||
Explanation: 27 = 33
|
|
||||||
Example 2:
|
|
||||||
|
|
||||||
Input: n = 0
|
|
||||||
Output: false
|
|
||||||
Explanation: There is no x where 3x = 0.
|
|
||||||
Example 3:
|
|
||||||
|
|
||||||
Input: n = -1
|
|
||||||
Output: false
|
|
||||||
Explanation: There is no x where 3x = (-1).
|
|
||||||
|
|
@@ -1,26 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
type Solution struct{}
|
|
||||||
|
|
||||||
func (s Solution) IsPowerOfThree(n int) bool{
|
|
||||||
if n <= 0{
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if n == 1{
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
if n % 3 != 0{
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return s.IsPowerOfThree(n/3)
|
|
||||||
}
|
|
||||||
|
|
||||||
func main(){
|
|
||||||
solution := Solution{}
|
|
||||||
|
|
||||||
fmt.Println(solution.IsPowerOfThree(27))
|
|
||||||
fmt.Println(solution.IsPowerOfThree(0))
|
|
||||||
fmt.Println(solution.IsPowerOfThree(-1))
|
|
||||||
}
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,24 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.5.2.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaxCollectedFruits", "MaxCollectedFruits.csproj", "{AA67CF61-67B3-7229-E3F9-D471B0EF4EDE}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{AA67CF61-67B3-7229-E3F9-D471B0EF4EDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{AA67CF61-67B3-7229-E3F9-D471B0EF4EDE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{AA67CF61-67B3-7229-E3F9-D471B0EF4EDE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{AA67CF61-67B3-7229-E3F9-D471B0EF4EDE}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {B9D47F51-61C3-4A24-890A-01C9AC85EC93}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@@ -1,67 +0,0 @@
|
|||||||
public class Solution
|
|
||||||
{
|
|
||||||
public int MaxCollectedFruits(int[][] fruits)
|
|
||||||
{
|
|
||||||
int n = fruits.Length;
|
|
||||||
int ans = 0;
|
|
||||||
for (int i = 0; i < n; ++i) ans += fruits[i][i];
|
|
||||||
|
|
||||||
int dp()
|
|
||||||
{
|
|
||||||
int[] prev = Enumerable.Repeat(int.MinValue, n).ToArray();
|
|
||||||
int[] curr = new int[n];
|
|
||||||
prev[n - 1] = fruits[0][n - 1];
|
|
||||||
for (int i = 1; i < n - 1; ++i)
|
|
||||||
{
|
|
||||||
Array.Fill(curr, int.MinValue);
|
|
||||||
for (int j = Math.Max(n - 1 - i, i + 1); j < n; ++j)
|
|
||||||
{
|
|
||||||
int best = prev[j];
|
|
||||||
if (j - 1 >= 0)
|
|
||||||
{
|
|
||||||
best = Math.Max(best, prev[j - 1]);
|
|
||||||
}
|
|
||||||
if (j + 1 < n)
|
|
||||||
{
|
|
||||||
best = Math.Max(best, prev[j + 1]);
|
|
||||||
}
|
|
||||||
curr[j] = best + fruits[i][j];
|
|
||||||
}
|
|
||||||
var temp = prev;
|
|
||||||
prev = curr;
|
|
||||||
curr = temp;
|
|
||||||
}
|
|
||||||
return prev[n - 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
ans += dp();
|
|
||||||
|
|
||||||
for (int i = 0; i < n; ++i)
|
|
||||||
{
|
|
||||||
for (int j = 0; j < i; ++j)
|
|
||||||
{
|
|
||||||
var temp = fruits[j][i];
|
|
||||||
fruits[j][i] = fruits[i][j];
|
|
||||||
fruits[i][j] = temp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ans += dp();
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
static void Main()
|
|
||||||
{
|
|
||||||
var Solution = new Solution();
|
|
||||||
|
|
||||||
var fruits = new int[][] { [1,2,3,4],[5,6,8,7],[9,10,11,12],[13,14,15,16]};
|
|
||||||
|
|
||||||
Console.WriteLine(Solution.MaxCollectedFruits(fruits));
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,24 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.5.2.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SortMatrix", "SortMatrix.csproj", "{60318F94-4F41-A4B8-C189-A8135ECCECCB}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{60318F94-4F41-A4B8-C189-A8135ECCECCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{60318F94-4F41-A4B8-C189-A8135ECCECCB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{60318F94-4F41-A4B8-C189-A8135ECCECCB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{60318F94-4F41-A4B8-C189-A8135ECCECCB}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {9F59D1F6-D9F3-492C-BC39-A5771AF22B36}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@@ -1,115 +0,0 @@
|
|||||||
public class Solution
|
|
||||||
{
|
|
||||||
public int[][] SortMatrix(int[][] grid)
|
|
||||||
{
|
|
||||||
// 左下
|
|
||||||
var leftDiagonals = new Dictionary<int, List<int>>();
|
|
||||||
for (var i = 0; i < grid.Length; i++)
|
|
||||||
{
|
|
||||||
// total -> 2n + 1 way
|
|
||||||
for (var j = 0; j <= i; j++)
|
|
||||||
{
|
|
||||||
int diagonal = i - j;
|
|
||||||
if (!leftDiagonals.ContainsKey(diagonal))
|
|
||||||
{
|
|
||||||
leftDiagonals[diagonal] = new List<int>();
|
|
||||||
}
|
|
||||||
leftDiagonals[diagonal].Add(grid[i][j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 右上
|
|
||||||
var rightDiagonals = new Dictionary<int, List<int>>();
|
|
||||||
for (var i = 0; i < grid.Length; i++)
|
|
||||||
{
|
|
||||||
for (var j = i; j < grid.Length; j++)
|
|
||||||
{
|
|
||||||
int diagonal = j - i;
|
|
||||||
if (!rightDiagonals.ContainsKey(diagonal))
|
|
||||||
{
|
|
||||||
rightDiagonals[diagonal] = new List<int>();
|
|
||||||
}
|
|
||||||
rightDiagonals[diagonal].Add(grid[i][j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var diagonal in leftDiagonals.Values)
|
|
||||||
{
|
|
||||||
diagonal.Sort((a, b) => b.CompareTo(a));
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var diagonal in rightDiagonals.Values)
|
|
||||||
{
|
|
||||||
diagonal.Sort((a, b) => a.CompareTo(b));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = 0; i < grid.Length; i++)
|
|
||||||
{
|
|
||||||
for (var j = 0; j <= i; j++)
|
|
||||||
{
|
|
||||||
int diagonal = i - j;
|
|
||||||
grid[i][j] = leftDiagonals[diagonal][0];
|
|
||||||
leftDiagonals[diagonal].RemoveAt(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var j = i; j < grid.Length; j++)
|
|
||||||
{
|
|
||||||
if (i == j) continue;
|
|
||||||
int diagonal = j - i;
|
|
||||||
grid[i][j] = rightDiagonals[diagonal][0];
|
|
||||||
rightDiagonals[diagonal].RemoveAt(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return grid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Solution2 {
|
|
||||||
public int[][] SortMatrix(int[][] grid) {
|
|
||||||
int n = grid.Length;
|
|
||||||
|
|
||||||
for (int i = 0; i < n; i++) {
|
|
||||||
List<int> tmp = new List<int>();
|
|
||||||
for (int j = 0; i + j < n; j++) {
|
|
||||||
tmp.Add(grid[i + j][j]);
|
|
||||||
}
|
|
||||||
tmp.Sort((a, b) => b.CompareTo(a));
|
|
||||||
for (int j = 0; i + j < n; j++) {
|
|
||||||
grid[i + j][j] = tmp[j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int j = 1; j < n; j++) {
|
|
||||||
List<int> tmp = new List<int>();
|
|
||||||
for (int i = 0; j + i < n; i++) {
|
|
||||||
tmp.Add(grid[i][j + i]);
|
|
||||||
}
|
|
||||||
tmp.Sort();
|
|
||||||
for (int i = 0; j + i < n; i++) {
|
|
||||||
grid[i][j + i] = tmp[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return grid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
static void Main()
|
|
||||||
{
|
|
||||||
var Solution = new Solution();
|
|
||||||
|
|
||||||
var gird = new int[][] { [1, 7, 3], [9, 8, 2], [4, 5, 6] };
|
|
||||||
var result = Solution.SortMatrix(gird);
|
|
||||||
|
|
||||||
for (int i = 0; i < result.Length; i++)
|
|
||||||
{
|
|
||||||
for (int j = 0; j < result[i].Length; j++)
|
|
||||||
{
|
|
||||||
Console.Write(result[i][j] + " ");
|
|
||||||
}
|
|
||||||
Console.WriteLine();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,24 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.5.2.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FindDiagonalOrder", "FindDiagonalOrder.csproj", "{B3151728-C057-4305-DD4C-9A2AFBFC189A}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{B3151728-C057-4305-DD4C-9A2AFBFC189A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{B3151728-C057-4305-DD4C-9A2AFBFC189A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{B3151728-C057-4305-DD4C-9A2AFBFC189A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{B3151728-C057-4305-DD4C-9A2AFBFC189A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {DB56539A-6F32-4D28-B91F-BB1DCF46F4D0}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,61 +0,0 @@
|
|||||||
public class Solution {
|
|
||||||
public int[] FindDiagonalOrder(int[][] mat)
|
|
||||||
{
|
|
||||||
if (mat == null || mat.Length == 0 || mat[0].Length == 0)
|
|
||||||
{
|
|
||||||
return new int[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
var m = mat.Length;
|
|
||||||
var n = mat[0].Length;
|
|
||||||
|
|
||||||
var diagonals = new Dictionary<int, List<int>>();
|
|
||||||
|
|
||||||
for (var i = 0; i < m; i++)
|
|
||||||
{
|
|
||||||
for (var j = 0; j < n; j++)
|
|
||||||
{
|
|
||||||
int diagonalIndex = i + j;
|
|
||||||
if (!diagonals.ContainsKey(diagonalIndex))
|
|
||||||
{
|
|
||||||
diagonals[diagonalIndex] = new List<int>();
|
|
||||||
}
|
|
||||||
diagonals[diagonalIndex].Add(mat[i][j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var result = new List<int>();
|
|
||||||
foreach (var key in diagonals.Keys)
|
|
||||||
{
|
|
||||||
var diagonal = diagonals[key];
|
|
||||||
if (key % 2 == 0)
|
|
||||||
{
|
|
||||||
result.AddRange(diagonal);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
diagonal.Reverse();
|
|
||||||
result.AddRange(diagonal);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result.ToArray();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
static void Main()
|
|
||||||
{
|
|
||||||
var Solution = new Solution();
|
|
||||||
|
|
||||||
int[][] mat1 = new int[][]{
|
|
||||||
new int[]{1,2,3},
|
|
||||||
new int[]{4,5,6},
|
|
||||||
new int[]{7,8,9}
|
|
||||||
};
|
|
||||||
|
|
||||||
Console.WriteLine(string.Join(", ", Solution.FindDiagonalOrder(mat1)));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,45 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func findDiagonalOrder(mat [][]int) []int {
|
|
||||||
if len(mat) == 0 || len(mat[0]) == 0{
|
|
||||||
return []int{}
|
|
||||||
}
|
|
||||||
|
|
||||||
m := len(mat)
|
|
||||||
n := len(mat[0])
|
|
||||||
|
|
||||||
// maps
|
|
||||||
diagonals := make(map[int][]int)
|
|
||||||
|
|
||||||
for i:=0; i< m;i++{
|
|
||||||
for j:=0; j < n; j++{
|
|
||||||
index := i+j
|
|
||||||
diagonals[index] = append(diagonals[index], mat[i][j])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
result := []int{}
|
|
||||||
|
|
||||||
for i:= 0; i< m+n-1; i++{
|
|
||||||
if i% 2 == 0{
|
|
||||||
reverse(diagonals[i])
|
|
||||||
result = append(result, diagonals[i]...)
|
|
||||||
}else{
|
|
||||||
result = append(result, diagonals[i]...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func reverse(slice []int){
|
|
||||||
left, right :=0, len(slice)-1
|
|
||||||
|
|
||||||
for left < right{
|
|
||||||
slice[left], slice[right] = slice[right], slice[left]
|
|
||||||
left++
|
|
||||||
right--
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,7 +0,0 @@
|
|||||||
1. 觀察矩陣對角線模式
|
|
||||||
1. (0,0) -> 1 -> i+j = 0
|
|
||||||
2. (1, 0), (0, 1) -> 2 -> i+j = 1
|
|
||||||
3. (2, 0), (1, 1), (0, 2) -> 3 -> i+j = 2
|
|
||||||
2. how to deal with diagonal sorting?
|
|
||||||
1. while (i+j) % 2 == 1
|
|
||||||
2. while (i+j) % 2 == 0 reversed
|
|
@@ -1,24 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.5.2.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "soupServings", "soupServings.csproj", "{6D960F00-6A53-6E19-86A1-4BF3D1CD764F}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{6D960F00-6A53-6E19-86A1-4BF3D1CD764F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{6D960F00-6A53-6E19-86A1-4BF3D1CD764F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{6D960F00-6A53-6E19-86A1-4BF3D1CD764F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{6D960F00-6A53-6E19-86A1-4BF3D1CD764F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {11CC27B7-C17E-4820-8A68-ADD32A2B37F8}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@@ -1,56 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
public class Solution
|
|
||||||
{
|
|
||||||
private Dictionary<(int, int), double> dp = new Dictionary<(int, int), double>();
|
|
||||||
public double SoupServings(int n)
|
|
||||||
{
|
|
||||||
if (n > 5000)
|
|
||||||
return 1.0;
|
|
||||||
|
|
||||||
n = (n + 24) / 25;
|
|
||||||
|
|
||||||
// use dynamic programming
|
|
||||||
return Helper(n, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
private double Helper(int a, int b)
|
|
||||||
{
|
|
||||||
if (a <= 0 && b <= 0)
|
|
||||||
{
|
|
||||||
return 0.5;
|
|
||||||
}
|
|
||||||
if (a <= 0)
|
|
||||||
{
|
|
||||||
return 1.0;
|
|
||||||
}
|
|
||||||
if (b <= 0)
|
|
||||||
{
|
|
||||||
return 0.0;
|
|
||||||
}
|
|
||||||
if (dp.ContainsKey((a, b)))
|
|
||||||
{
|
|
||||||
return dp[(a, b)];
|
|
||||||
}
|
|
||||||
|
|
||||||
double probability = 0.25 * (
|
|
||||||
Helper(a - 4, b) +
|
|
||||||
Helper(a - 3, b - 1) +
|
|
||||||
Helper(a - 2, b - 2) +
|
|
||||||
Helper(a - 1, b - 3)
|
|
||||||
);
|
|
||||||
|
|
||||||
dp[(a, b)] = probability;
|
|
||||||
return probability;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
static void Main()
|
|
||||||
{
|
|
||||||
var Solution = new Solution();
|
|
||||||
var ans = Solution.SoupServings(800);
|
|
||||||
Console.WriteLine(ans);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,10 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@@ -1,52 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import ("fmt")
|
|
||||||
|
|
||||||
type Solution struct{
|
|
||||||
dp map[[2]int]float64
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewSolution() *Solution{
|
|
||||||
return &Solution{dp: make(map[[2]int]float64)}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Solution) SoupServings(n int)float64{
|
|
||||||
if n > 5000{
|
|
||||||
return 1.0
|
|
||||||
}
|
|
||||||
|
|
||||||
n = (n+24) /25
|
|
||||||
|
|
||||||
return s.helper(n, n)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s * Solution) helper(a, b int) float64 {
|
|
||||||
if a <= 0 && b <= 0{
|
|
||||||
return 0.5
|
|
||||||
}
|
|
||||||
if a <= 0{
|
|
||||||
return 1.0
|
|
||||||
}
|
|
||||||
if b <= 0{
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
if val, exist := s.dp[[2]int{a, b}]; exist{
|
|
||||||
return val
|
|
||||||
}
|
|
||||||
|
|
||||||
probability := 0.25 * (
|
|
||||||
s.helper(a-4, b) +
|
|
||||||
s.helper(a-3, b-1) +
|
|
||||||
s.helper(a-2, b-2) +
|
|
||||||
s.helper(a-1, b-3))
|
|
||||||
|
|
||||||
s.dp[[2]int {a, b}] = probability
|
|
||||||
return probability
|
|
||||||
}
|
|
||||||
|
|
||||||
func main(){
|
|
||||||
Solution := NewSolution()
|
|
||||||
ans := Solution.SoupServings(100)
|
|
||||||
fmt.Println(ans)
|
|
||||||
}
|
|
@@ -1,14 +0,0 @@
|
|||||||
You have two soups, A and B, each starting with n mL. On every turn, one of the following four serving operations is chosen at random, each with probability 0.25 independent of all previous turns:
|
|
||||||
|
|
||||||
pour 100 mL from type A and 0 mL from type B
|
|
||||||
pour 75 mL from type A and 25 mL from type B
|
|
||||||
pour 50 mL from type A and 50 mL from type B
|
|
||||||
pour 25 mL from type A and 75 mL from type B
|
|
||||||
Note:
|
|
||||||
|
|
||||||
There is no operation that pours 0 mL from A and 100 mL from B.
|
|
||||||
The amounts from A and B are poured simultaneously during the turn.
|
|
||||||
If an operation asks you to pour more than you have left of a soup, pour all that remains of that soup.
|
|
||||||
The process stops immediately after any turn in which one of the soups is used up.
|
|
||||||
|
|
||||||
Return the probability that A is used up before B, plus half the probability that both soups are used up in the same turn. Answers within 10-5 of the actual answer will be accepted.
|
|
Reference in New Issue
Block a user