- 博客(22)
- 收藏
- 关注
原创 课程表
/ 定义一个数组来存储课程的入度int[] indegree = new int[numCourses]; 定义一个队列用来排 将所有入度为0的课程入队, 然后将入度标记为-1,防止后面重复入队 开始出队,每出队一门课,就维护入度数组,然后将所有入度为0的数组入队,然后将入度标记为-1,防止后面重复入队 遍历indegree中入度为-1的数量,也就是已经完成的课程数,和numCourses一样就返回true,否则返回falseclass Solution { public bool
2020-05-17 20:19:35 166
原创 格雷编码
class Solution { public List<Integer> grayCode(int n) { List<Integer> res = new ArrayList<Integer>() {{add(0);}}; int head = 1; for (int i = 0; i < n; i++)...
2020-04-19 20:21:32 106
原创 子集
class Solution { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> res = new ArrayList<>(); res.add(new ArrayList<>()); for (int ...
2020-04-19 20:10:31 117
原创 只出现一次的数字
学了一个讨巧的方法XOR,它具有记忆性和可交换性,能有效处理问题。class Solution { public int singleNumber(int[] nums) { int num=0; for(int n:nums) num^=n; return num; }}...
2020-04-11 21:19:03 65
原创 无重复字符的最长子串
首先理解子串和子序列的区别,然后利用滑动窗口解决该问题,再者利用哈希表减小空间存储。class Solution { public int lengthOfLongestSubstring(String s) { Map<Character,Integer>map=new HashMap<>(); int first=0; int resu...
2020-04-11 21:00:55 65
原创 反转字符串
利用双指针分别指向字符串的头部和尾部,进行交换直到位置相同。class Solution { public void reverseString(char[] s) { int left = 0; int right = s.length - 1; char temp; while (left < right) { temp ...
2020-04-06 21:14:01 77
原创 最长公共前缀
运用暴力法直接依次进行对比操作。class Solution { public String longestCommonPrefix(String[] strs) { if (strs.length == 0||strs==null) return ""; String prefix = strs[0]; for (int i = 1; i &l...
2020-04-06 21:05:59 97
原创 设计循环双端队列
运用循环队列解题即可class MyCircularDeque { private int[] ring; private int cap; private int head; private int tail; /** Initialize your data structure here. Set the size of the deque to b...
2020-03-30 15:29:11 110
原创 整数反转
首先判断是否为Integer的最小值 ,是则返回0,然后判断是否为负数,再将x取正,最后在运行中判断是否会溢出,是则返回0。class Solution { public int reverse(int x) { if(x==Integer.MIN_VALUE) return 0; int neg=x<0?-1:1; x*=neg; i...
2020-03-29 20:06:31 75
原创 最小栈
先将首元素推入栈中,新加入的元素如果大于栈顶元素就不处理,新加入的元素如果小于等于栈顶元素就将新元素入栈。class MinStack { /** initialize your data structure here. */ private Stack<Integer> stack; private Stack<Integer> minStac...
2020-03-22 23:43:27 82
原创 有效的括号
遍历元素,遇到左括号就存到数据结构中,遇到右括号就去找左括号数据结构的头位置,用map判断是右括号与左括号否配对。class Solution { public boolean isValid(String s) { if(s==null||s.length()==0) return true; Map<Character, Character>...
2020-03-22 23:03:05 71
原创 环形链表
利用哈斯表解题/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */publi...
2020-03-15 22:30:13 62
原创 删除排序链表中的重复元素
由于输入的列表已排序,所以可用while循环,对比前后是否重复。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution ...
2020-03-15 22:15:14 64
原创 合并两个有序链表
尝试一下C#(老师上课讲的)/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { val = x; } * } */public class...
2020-03-15 21:39:56 74
原创 猜数字
之前学习C++的时候接触过随机数的判定,就用它尝试了一下。#include<iostream>#include<cstdlib>using namespace std;int main(){ int num; int magic; int i = 1; magic = rand() % 100 + 1; cout << "猜测一个0到100之...
2020-03-08 23:12:42 114
原创 合并两个有序数组
这条题目借鉴的方法比较多,首先是要从后向前遍历数组,其次三目运算符的使用简化了过程,最后将nums2中找回丢失的元素的方法是完全想不到的,提示说将nums2数组从下标0位置开始,拷贝到nums1数组中即可。...
2020-03-01 21:50:44 82
原创 买卖股票的最佳时机
开始的时候想用minprice和maxprice,但是没有想到确保maxprice比minprice的方法,于是换用的maxprofit。但是越界,当有Integer.MAX_VALUE和MIN_VALUE,可以避免出现对其直接运算。...
2020-03-01 19:43:31 126
原创 两数之和
在网上观看了一下哈斯表的解法,用哈斯表存储已经访问过的整数,在访问一个新的整数的时候,需要找的那个整数,就去哈斯表里进行查找,如果找到所需要的整数,就返回它的下标。自己本身还不能独立完成任务,需要借鉴模仿。...
2020-02-23 21:05:27 76
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人