Compare commits
3 Commits
91167d0d3b
...
36c5339b1f
| Author | SHA1 | Date | |
|---|---|---|---|
| 36c5339b1f | |||
| 2e8537eb7f | |||
| 6731384638 |
@@ -5,6 +5,7 @@ set(CMAKE_C_STANDARD 11)
|
|||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
set(GTEST_VERSION 1.17.0)
|
set(GTEST_VERSION 1.17.0)
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
include_directories(include)
|
include_directories(include)
|
||||||
|
|
||||||
|
|||||||
14
include/solution/746.h
Normal file
14
include/solution/746.h
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
// This file is generated by mkfile.py
|
||||||
|
// Date: 2025-12-05
|
||||||
|
|
||||||
|
#ifndef INC_746_H
|
||||||
|
#define INC_746_H
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
int minCostClimbingStairs(int *cost, int costSize);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif // INC_746_H
|
||||||
2
mkfile.py
Normal file → Executable file
2
mkfile.py
Normal file → Executable file
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import sys
|
import sys
|
||||||
import datetime
|
import datetime
|
||||||
|
|||||||
15
src/746.c
Normal file
15
src/746.c
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
// This file is generated by mkfile.py
|
||||||
|
// Date: 2025-12-05
|
||||||
|
|
||||||
|
#include <solution/746.h>
|
||||||
|
|
||||||
|
#define min(x, y) ((x) < (y) ? (x) : (y))
|
||||||
|
int minCostClimbingStairs(int *cost, int costSize)
|
||||||
|
{
|
||||||
|
int dp[costSize + 1];
|
||||||
|
dp[0] = dp[1] = 0;
|
||||||
|
for (int i = 2; i <= costSize; i++)
|
||||||
|
dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
|
||||||
|
|
||||||
|
return dp[costSize];
|
||||||
|
}
|
||||||
@@ -10,5 +10,3 @@ foreach (TEST_SRC ${TEST_SOURCES})
|
|||||||
|
|
||||||
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
|
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
enable_testing()
|
|
||||||
47
tests/test_746.cpp
Normal file
47
tests/test_746.cpp
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
// This file is generated by mkfile.py
|
||||||
|
// Date: 2025-12-05
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
#include <solution/746.h>
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// Tests for minCostClimbingStairs (LeetCode 746)
|
||||||
|
class MinCostClimbingStairsTest : public ::testing::Test
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
void AssertMinCost(const std::vector<int> &input, int expected)
|
||||||
|
{
|
||||||
|
int *cost = new int[input.size()];
|
||||||
|
std::copy(input.begin(), input.end(), cost);
|
||||||
|
|
||||||
|
int result = minCostClimbingStairs(cost, (int)input.size());
|
||||||
|
ASSERT_EQ(result, expected);
|
||||||
|
|
||||||
|
delete[] cost;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
TEST_F(MinCostClimbingStairsTest, Example1)
|
||||||
|
{
|
||||||
|
// cost = [10,15,20] -> expected 15
|
||||||
|
AssertMinCost({10, 15, 20}, 15);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(MinCostClimbingStairsTest, Example2)
|
||||||
|
{
|
||||||
|
// cost = [1,100,1,1,1,100,1,1,100,1] -> expected 6
|
||||||
|
AssertMinCost({1, 100, 1, 1, 1, 100, 1, 1, 100, 1}, 6);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(MinCostClimbingStairsTest, TwoSteps)
|
||||||
|
{
|
||||||
|
// Two steps: choose cheaper one
|
||||||
|
AssertMinCost({5, 3}, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(MinCostClimbingStairsTest, ZeroCost)
|
||||||
|
{
|
||||||
|
AssertMinCost({0, 0, 0}, 0);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user