
数据结构与算法 课堂作业
数据结构与算法课堂作业
西在路上
这个作者很懒,什么都没留下…
展开
-
LeetCode 格雷编码
LeetCode89.格雷编码题目输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2在这里插入代码片代码00原创 2020-04-20 08:04:35 · 188 阅读 · 0 评论 -
LeetCode 子集
LeetCode78.子集题目代码public class Solution { public IList<IList<int>> Subsets(int[] nums) { int len = nums.Length; double num = Math.Pow(2, ...原创 2020-04-17 09:33:06 · 201 阅读 · 0 评论 -
LeetCode 无重复字符的最长子串
LeetCode3.无重复字符的最长子串题目代码一,二,哈希表public class Solution { public int LengthOfLongestSubstring(string s) { HashSet<char> result = new HashSet<char>(); //建立哈希表 ...原创 2020-04-09 12:24:05 · 189 阅读 · 0 评论 -
LeetCode 只出现一次的数字
LeetCode136.只出现一次的数字题目代码一,排序先对这个数组排序,这样重复出现的数字就会连在一起,然后用一个针指遍历数组中相连的两个数字,就可以找出这个“孤单”的数字。public class Solution { public int SingleNumber(int[] nums) { //排序 A...原创 2020-04-07 17:02:20 · 141 阅读 · 0 评论 -
LeetCode 最长公共前缀
LeetCode14.最长公共前缀题目代码000原创 2020-04-01 09:19:32 · 135 阅读 · 0 评论 -
LeetCode 反转字符串
LeetCode344.反转字符串题目代码最直接的方法就是对应位置相互交换,若s的长度为奇数时,以最中间的元素为对称轴,镜面元素相互交换,若s的长度为偶数时,以最中间两个元素的中间为对称轴,镜面元素相互交换即可。代码简单有效。public class Solution { public void ReverseString(char[] s) { ...原创 2020-04-01 08:25:53 · 204 阅读 · 0 评论 -
LeetCode 滑动窗口最大值
LeetCode239.滑动窗口最大值题目代码原创 2020-03-27 15:58:16 · 130 阅读 · 0 评论 -
LeetCode 整数反转
LeetCode07.整数反转题目代码一,利用数学关系考虑到temp = temp * 10 + x % 10溢出的问题,我想到了先把temp定义为long类型,当反转后再判断temp是不溢出了,如果溢出了就返回0;没有溢出的话就把temp强制转换为int类型。int是32 位的有符号整数(struct System.Int32 ),long是64位的有符号整数(struct Syst...原创 2020-03-27 09:12:23 · 168 阅读 · 0 评论 -
LeetCode 最小栈
LeetCode155.最小栈题目代码public class MinStack { private Stack<int> stack; private Stack<int> minstack; /** initialize your data structure here. */ public ...原创 2020-03-20 22:32:26 · 105 阅读 · 0 评论 -
LeetCode 逆波兰表达式求值
LeetCode150.逆波兰表达式求值.题目代码public class Solution { public int EvalRPN(string[] tokens) { if (tokens.Length == 1) return Convert.ToInt32(tokens[...原创 2020-03-20 13:33:38 · 161 阅读 · 0 评论 -
LeetCode 有效的括号
LeetCode.20有效的括号题目代码首先字符串的长度为奇数是返回false。假设一个字符串是合法的,那么必定存在一对相应的括号是连在一起的,因此可以寻找一对连在一起的有效括号,然后将其删除,继续寻找依次类推。如果最后字符串中没有元素,那么就说明这些字符串的括号都是相应匹配的有效括号,就返回true,否则返回false。public class Solution { ...原创 2020-03-17 22:11:11 · 101 阅读 · 0 评论 -
LeetCode 环形链表
LeetCode 环形链表题目代码/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { * val...原创 2020-03-12 09:56:58 · 103 阅读 · 0 评论 -
LeetCode 删除排序链表中的重复元素
LeetCode 删除排序链表中的重复元素题目代码/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { val = x; }...原创 2020-03-11 20:11:49 · 138 阅读 · 0 评论 -
LeetCode 合并两个有序链表
LeetCode 合并两个有序链表题目代码迭代法:/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { val = x;...原创 2020-03-10 14:54:57 · 111 阅读 · 0 评论 -
LeetCode 买卖股票的最佳时机II
LeetCode 买卖股票的最佳时机II题目示例思路代码int maxProfit(int* prices, int pricesSize){ int i; int sum = 0; for (i = 0 ; i < pricesSize-1 ; i++) if (prices[i] < ...原创 2020-03-05 15:31:23 · 114 阅读 · 0 评论 -
课堂练习 猜数字
题目C#using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 猜数字{ class Program { static void Main(string[] args) { Rand...原创 2020-03-03 20:09:48 · 357 阅读 · 0 评论 -
LeetCode 买卖股票的最佳时机
LeetCode 买卖股票的最佳时机题目示例思路使用双重循环,外层循环代表买入的价格,因为不能同天买卖,所以外层循环到倒数第二天停止,内层循环代表卖出的价格,只有当买入价格小于卖出价格时才能出售,否则会亏损,所以用if语句控制。如果价格是越来越低,也就是不能卖出,所以返回初始值0。代码public class Solution { public int MaxPro...原创 2020-03-01 22:12:52 · 111 阅读 · 0 评论 -
LeetCode 合并两个有序数组
LeetCode 合并两个有序数组题目示例思路因为nums1有足够的空间,所以可以先将nums2接在nums1的后面,然后再进行数组的排序,这样就达到目的了。代码public class Solution { public void Merge(int[] nums1, int m, int[] nums2, int n) { ...原创 2020-03-01 21:45:11 · 196 阅读 · 0 评论 -
LeetCode 最大子序和
LeetCode 最大子序和题目示例思路还是以最基础的暴力法出发,使用双重循环,外层循环是确定一个开始值,内层循环是对开始值之后的数进行求和,并比较这些和里面的最大值。每次内层循环进行一次,对当前找到的最大子序和更新一次。代码public class Solution { public int MaxSubArray(int[] nums) { ...原创 2020-03-01 20:48:32 · 105 阅读 · 0 评论 -
LeetCode 两数之和
LeetCode 两数之和题目示例思路最简单的方法应该是暴力法,遍历整个数组找到满足nums[i]+nums[j]==target的元素。使用两重循环+一个判断语句即可完成。代码class Solution(object): def twoSum(self, nums, target): """ :type nums...原创 2020-02-23 22:26:46 · 126 阅读 · 0 评论 -
LeetCode 移除元素
LeetCode 移除元素题目思路首先,新定义一个数组,用循环将val除外的元素依次赋值到新的数组里,但此时题目要求了必须在原地修改,因此这种方法不适合。然后我想到了用交换的方法,即把数组中所有的val,交换到数组的最后,用for循环控制数组数组中的元素移动,当元素的值是目标val时,进行替换,此时还要考虑交换之后的这个元素是否还是val,因此做一次i - -;让交换后的元素与val在...原创 2020-02-23 21:24:06 · 93 阅读 · 0 评论 -
LeetCode 删除排序数组中的重复项
LeetCode 删除排序数组中的重复项题目示例思路先考虑数组元素个数少于2位的情况,这种情况下不会出现重复的元素,因此直接返回数组长度。其次,题目中给定的是一个排序数列,所以,相同的重复的元素会连续的出现在一起,所以我们可以用双指针,第一个指针指向这些重复的元素的第一个,第二个指针开始遍历这个元素之后这些重复的元素,直到找到第一个与这个元素不一样的元素,然后把第一个指针指向第二个重...原创 2020-02-23 21:51:38 · 153 阅读 · 0 评论