瀏覽代碼

分支20完成

master
linyongji 4 年之前
父節點
當前提交
cd359a8b52
共有 11 個文件被更改,包括 90 次插入3 次删除
  1. +4
    -0
      .gitignore
  2. 二進制
      Alogrithm/.vs/Alogrithm/v16/.suo
  3. +3
    -0
      Alogrithm/Alogrithm/Alogrithm.vcxproj
  4. +9
    -0
      Alogrithm/Alogrithm/Alogrithm.vcxproj.filters
  5. +21
    -0
      Alogrithm/Alogrithm/config/20_MoveZeroes.ini
  6. +2
    -0
      Alogrithm/Alogrithm/include/20_MoveZeroes.h
  7. +19
    -0
      Alogrithm/Alogrithm/src/20_MoveZeroes.cpp
  8. +7
    -2
      Alogrithm/Alogrithm/src/main.cpp
  9. +23
    -0
      Alogrithm/UnitTest/UnitTest.cpp
  10. +1
    -1
      Alogrithm/UnitTest/UnitTest.vcxproj
  11. +1
    -0
      Alogrithm/UnitTest/pch.h

+ 4
- 0
.gitignore 查看文件

@@ -166,3 +166,7 @@ Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/1a1702b241b62b26/19_MYSQRT.ipch
Alogrithm/.vs/Alogrithm/v16/TestStore/0/005.testlog
Alogrithm/Alogrithm/Debug/19_MySqrt.obj
Alogrithm/UnitTest/Debug/UnitTest.tlog/link.16016.delete.1.tlog
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/85aeac5e7d03af9f/20_MOVEZEROES.ipch
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/b02cd44cfc574591/20_MOVEZEROES.ipch
Alogrithm/Alogrithm/Debug/20_MoveZeroes.obj
Alogrithm/UnitTest/Debug/UnitTest.tlog/link.7728.delete.1.tlog

二進制
Alogrithm/.vs/Alogrithm/v16/.suo 查看文件


+ 3
- 0
Alogrithm/Alogrithm/Alogrithm.vcxproj 查看文件

@@ -151,6 +151,7 @@
<ClCompile Include="src\18_PlusOne.cpp" />
<ClCompile Include="src\19_MySqrt.cpp" />
<ClCompile Include="src\1_ContainsNearbyDuplicate.cpp" />
<ClCompile Include="src\20_MoveZeroes.cpp" />
<ClCompile Include="src\2_ExcelSheetColumnTitle.cpp" />
<ClCompile Include="src\3_bool IsUgly.cpp" />
<ClCompile Include="src\4_IsPalindrome.cpp" />
@@ -172,6 +173,7 @@
<ClInclude Include="include\18_PlusOne.h" />
<ClInclude Include="include\19_MySqrt.h" />
<ClInclude Include="include\1_ContainsNearbyDuplicate.h" />
<ClInclude Include="include\20_MoveZeroes.h" />
<ClInclude Include="include\2_ExcelSheetColumnTitle.h" />
<ClInclude Include="include\3_bool IsUgly.h" />
<ClInclude Include="include\4_IsPalindrome.h" />
@@ -192,6 +194,7 @@
<None Include="config\18_PlusOne.ini" />
<None Include="config\19_MySqrt.ini" />
<None Include="config\1_ContainsNearbyDuplicate.ini" />
<None Include="config\20_MoveZeroes.ini" />
<None Include="config\2_ExcelSheetColumnTiTle.ini" />
<None Include="config\3_bool IsUgly.ini" />
<None Include="config\4_IsPalindrome.ini" />


+ 9
- 0
Alogrithm/Alogrithm/Alogrithm.vcxproj.filters 查看文件

@@ -81,6 +81,9 @@
<ClCompile Include="src\19_MySqrt.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
<ClCompile Include="src\20_MoveZeroes.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="include\2_ExcelSheetColumnTitle.h">
@@ -137,6 +140,9 @@
<ClInclude Include="include\19_MySqrt.h">
<Filter>头文件\include</Filter>
</ClInclude>
<ClInclude Include="include\20_MoveZeroes.h">
<Filter>头文件\include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="config\3_bool IsUgly.ini">
@@ -193,5 +199,8 @@
<None Include="config\19_MySqrt.ini">
<Filter>资源文件\config</Filter>
</None>
<None Include="config\20_MoveZeroes.ini">
<Filter>资源文件\config</Filter>
</None>
</ItemGroup>
</Project>

+ 21
- 0
Alogrithm/Alogrithm/config/20_MoveZeroes.ini 查看文件

@@ -0,0 +1,21 @@
[Test1]
Input=0,1,0,3,12
Output=1,3,12,0,0
[Test2]
Input=0,1,1,3,0,1
Output=1,1,3,1,0,0
[Test3]
Input=0
Output=0
[Test4]
Input=0,1
Output=1,0
[Test5]
Input=0,1,0,2,0,3,0,4,0,5,0,6
Output=1,2,3,4,5,6,0,0,0,0,0,0
[Test6]
Input=1,1,0,1,3,3,1,0
Output=1,1,1,3,3,1,0,0
[Test7]
Input=0,1,1,1,0,0,2,2,0,1
Output=1,1,1,2,2,1,0,0,0,0

+ 2
- 0
Alogrithm/Alogrithm/include/20_MoveZeroes.h 查看文件

@@ -0,0 +1,2 @@
#pragma once
void MoveZeroes(int* nums, int numsSize);

+ 19
- 0
Alogrithm/Alogrithm/src/20_MoveZeroes.cpp 查看文件

@@ -0,0 +1,19 @@
#include "../include/20_MoveZeroes.h"
//题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
//思路:定义两个变量left和right,开始时都指向数组的头部
// right用来访问数组的每一个元素,left指向数组从头到尾的第一个0
// 如果nums[right]不为0,则交换两数,right和left都向后移动
// 如果nums[right]为0,则left指向了0,right指向下一个数
void MoveZeroes(int* nums, int numsSize) {
int left = 0, right = 0, temp = 0;
while (right < numsSize) { //当right和数组长度相等时退出
if (nums[right] != 0) { //判断元素是否为0,不是则交换,两个指针同时移动;为0则只有right移动,left指向了0
temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
left++;
}
right++;
}

}

+ 7
- 2
Alogrithm/Alogrithm/src/main.cpp 查看文件

@@ -1,8 +1,13 @@
#include<stdio.h>
#include "../include/19_MySqrt.h"
#include "../include/20_MoveZeroes.h"

int main()
{
printf("%d\n", MySqrt(9));
int arr[6] = { 1,2,0,1,0};
MoveZeroes(arr, 5);
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}

}

+ 23
- 0
Alogrithm/UnitTest/UnitTest.cpp 查看文件

@@ -20,6 +20,7 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework;
#define FileName_16 "../Alogrithm/config/16_ReverseBits.ini"
#define FileName_18 "../Alogrithm/config/18_PlusOne.ini"
#define FileName_19 "../Alogrithm/config/19_MySqrt.ini"
#define FileName_20 "../Alogrithm/config/20_MoveZeroes.ini"

namespace UnitTest
{
@@ -348,4 +349,26 @@ namespace UnitTest
}
}
};
TEST_CLASS(UnitTest_20)
{
TEST_METHOD(TestMethode1)
{
char Section_Name[100][10] = { 0 };
int Section_Count = CalcCount(100, Section_Name, FileName_20);
int input_count = 0, output_count = 0, returnSize = 0;
int* input_value;
int* output_value;
CString input, output;
for (int i = 0; i < Section_Count; i++) {
GetPrivateProfileString(Section_Name[i], "Input", " ", input.GetBuffer(200), 200, FileName_20);
GetPrivateProfileString(Section_Name[i], "Output", " ", output.GetBuffer(200), 200, FileName_20);
input_value = str_device(input, &input_count);
output_value = str_device(output, &output_count);
MoveZeroes(input_value, input_count);
for (int i = 0; i < input_count; i++) {
Assert::AreEqual(input_value[i], output_value[i]);
}
}
}
};
}

+ 1
- 1
Alogrithm/UnitTest/UnitTest.vcxproj 查看文件

@@ -103,7 +103,7 @@
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;../Alogrithm/Debug/13_MyAtoi.obj;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;../Alogrithm/Debug/16_ReverseBits.obj;../Alogrithm/Debug/18_PlusOne.obj;../Alogrithm/Debug/19_MySqrt.obj;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;../Alogrithm/Debug/13_MyAtoi.obj;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;../Alogrithm/Debug/16_ReverseBits.obj;../Alogrithm/Debug/18_PlusOne.obj;../Alogrithm/Debug/19_MySqrt.obj;../Alogrithm/Debug/20_MoveZeroes.obj;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">


+ 1
- 0
Alogrithm/UnitTest/pch.h 查看文件

@@ -31,6 +31,7 @@
#include"../Alogrithm/include/16_ReverseBits.h"
#include"../Alogrithm/include/18_PlusOne.h"
#include"../Alogrithm/include/19_MySqrt.h"
#include"../Alogrithm/include/20_MoveZeroes.h"


int CalcCount(int n, char(*str)[10],const char *FileName);


Loading…
取消
儲存