LeetCode
testiness_wind
面向百度的unity工程师。
展开
-
LeetCode 初级算法 C# 买卖股票的最佳时机 II
解题思路题目中特别强调了同一天不能既卖出又买入,实际上则是一个语义陷阱,乍一看是这么回事,实际上在计算中不用特别处理。1.本体要求尽可能多的完成交易,首选贪心算法取当前最优解,即如果第二天的价格比第一天高我们就买入卖出,不考虑间隔的问题。2.假设连续三天价格为A B C,且A<B<C,那么A买入C卖出和A买入B卖出B再买入C再卖出,数学结果是一样的。3.假设连续四天...原创 2018-09-04 10:04:23 · 614 阅读 · 0 评论 -
LeetCode 初级算法 C# 旋转数组
解法一1.每次将数组旋转一位2.旋转K次 public static int[] nums = new int[7] { 1, 2, 3, 4, 5, 6, 7 }; public static void Rotate1(int[] nums, int k) { if (nums.Length == 0...原创 2018-09-04 20:47:25 · 582 阅读 · 0 评论 -
LeetCode 初级算法 C# 从排序数组中删除重复项
题目题目 C#中的数组在声明时必须指定长度,且无法动态的删除数组中的元素,只可以替换,列表可以动态的修改长度。数组将数组重新排序,重复元素后移,返回不重复的元素的数量。空间复杂度 O(1) public static int[] nums1 = new int[10] { 0, 0, 1, 1, 1, 2, 2, 3, 3, 4 }; p...原创 2018-09-03 11:17:41 · 598 阅读 · 0 评论 -
LeetCode 初级算法 C# 存在重复
解法一时间复杂度O(n^2)方法,将数组遍历两次,最容易想到的方法。 public static bool CheckRepeat1(int[] nums) { if (nums.Length < 2) return false; for (int i = 0; i < nums.Length...原创 2018-09-05 20:46:29 · 435 阅读 · 0 评论 -
LeetCode 初级算法 C# 只出现一次的数字
思路一最常规的思路是,把数组双重遍历,如果存在nums[i]==nums[j]就跳出,直到找到不存在重复的元素为止。思路二使用 异或 ,看看异或的解释:具体代码如下: pubulic static int FindSingleNumber(int[] nums) { int temp = 0; ...原创 2018-09-06 21:44:48 · 470 阅读 · 1 评论