- 博客(27)
- 问答 (1)
- 收藏
- 关注
原创 Python中的列表判空
1 列表判空if ls: print('not empty')if not ls: print('empty')2[], (), {}, 0, False. 都是false== 比较值,前提是哈希值相等is 比较类型3https://docs.python.org/zh-cn/3.7/library/stdtypes.html#comparisonshttps://...
2019-09-08 11:14:30 559
原创 递归
抄书递归总有一个最简单的情况——方法的第一条语句总是一个包含return的条件语句。递归调用总是去尝试解决一个规模更小的子问题。递归调用的父问题和尝试解决的子问题之间无交集。练习1.2.7public static String mystery(String s) { int N = s.length(); if (N <= 1) return ...
2019-05-09 21:47:07 123
原创 练习1.2.6
import edu.princeton.cs.algs4.StdOut;public class CircularRotation { private String gene; public CircularRotation(String s) { this.gene = s; } public boolean isCircularRota...
2019-05-09 21:30:17 297
原创 LeetCode 101.对称二叉树
LeetCode 101.对称二叉树失败的尝试一开始的思路是,层次遍历,然后把对每一行进行回文判断。这样有两个问题:退出条件无法决定,因为树可以有NULL回文无法判断,原因同上抄答案同时对左右子树进行层次遍历class Solution {public: bool isSymmetric(TreeNode* root) { queue<...
2019-04-20 22:42:21 123
翻译 HELLO WORLD IN JAVA(WINDOWS) 《算法》第四版环境配置
本文所有内容均来自《算法》第四版官方原文连接。0. 安装Java编程环境下载安装包lift-java-installer.exe使用所有默认设置安装这个安装包将覆盖你电脑上2018.2之前的IntelliJ版本删掉安装包1. 第一个IntelliJ项目下载一个项目用来验证安装。解压后删除压缩包。在Windows下点击开始,搜索IntelliJ,打开协议拉到底,接受;不...
2019-04-20 21:46:59 511 1
原创 C++ string
输入1. cincin>>str; //忽略开头的空白;遇到空白时结束(不包括空白)。2. getline()getline(cin, str); //读取一整行,包括空白符。字符1. 像C一样操作字符因为某些历史原因,也为了与C兼容,所以C++语言字符串字面值并不是标准库string类型的对象。2. cctype包含了对字符的各种判...
2019-04-18 16:28:32 91
原创 LeetCode 283. 移动零
LeetCode 283.我的思路双指针,一遍即可。class Solution {public: void moveZeroes(vector<int>& nums) { int i = 0, j = 0; while(j < nums.size()){ if(nums[j]...
2019-04-17 23:59:29 72
原创 LeetCode 171. Excel表列序号
LeetCode 171.我的思路26进制,同时运用string与C的兼容操作字符。class Solution {public: int titleToNumber(string s) { if(s.size() == 1) return s[0]-'A'+1; long result = 0; for(int i = ...
2019-04-17 23:09:46 72
原创 LeetCode 237.删除链表中的节点
LeetCode 237.我的思路无法访问前一个结点,因此不能用惯常的删除结点方法。那么就从后往前赋值,然后删除结尾结点。这是我一开始的思路,但不是最好的方法。void deleteNode(ListNode* node) { ListNode *p = node; while(p->next){ p->val ...
2019-04-16 22:40:11 61
原创 LeetCode 100.相同的树
LeetCode 100.相同的树层次遍历真值表p、q两棵树的结点只有在以上四种结点存在位置的情况下,才有可能相等,当且仅当结点存在且对应位置结点值相等时,两棵树相等。注意空结点入队后,队不为空。class Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if(!p ...
2019-04-15 21:18:32 78
原创 LeetCode 94.二叉树的中序遍历
LeetCode 94.二叉树的中序遍历二叉树的中序遍历,利用栈向左遍历到底,访问这个左结点(L),此时当这个最左结点的根结点的右结点也为叶结点时,就访问这个根结点(N),出栈,右结点的下面也为空,出栈,访问这个右结点(R),此时栈顶为这个LNR的上一层根结点……class Solution {public: vector<int> inorderTravers...
2019-04-13 22:51:56 87
原创 LeetCode 144.二叉树的前序遍历
LeetCode 144.二叉树的前序遍历扫描二叉树的非递归遍历,利用栈。class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> result; stack<TreeNode*> st; ...
2019-04-12 22:22:05 93
原创 LeetCode 88.合并两个有序数组
LeetCode 88.合并两个有序数组我的思路新造一个向量,然后把数组nums1中的前m个元素赋值进去,问题就变得很熟悉很简单。class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { vec...
2019-04-11 22:57:08 152
原创 LeetCode 83.删除排序链表中的重复元素
LeetCode 83.删除排序链表中的重复元素我的思路当前位置和之前位置,temp变量用于记录重复结点,用于删除。一开始多用了个old变量,后来发现pre->val就行了。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next;...
2019-04-11 21:55:38 97
原创 LeetCode 67.二进制求和
LeetCode 67. 二进制求和我的思路先把俩补成一样长的,然后考虑当前位和进位class Solution {public: string getCompensate(int val) { string result = ""; while (val--) { result += '0'; } return result; } int chart...
2019-04-09 23:35:05 124
原创 LeetCode 66.加一
LeetCode 66. 加一我的思路:分以下几个位置:句末、句中、句首分以下几种情况:到句尾< 9 直接加一= 9 向前继续判断到句中< 9 直接加一, 后面的9变成0= 9 向前继续判断到句首< 9 直接加一,后面的9变0= 9 句首的9变1,后面的9全变0,并在末尾加0vector<in...
2019-04-08 21:07:10 94
原创 LeetCode 58. 最后一个单词的长度
LeetCode 58. 最后一个单词的长度我的思路由题意知,结尾只有两种情况,空格或者字母去掉结尾的空格,从后往前数即可int lengthOfLastWord(string s) { int word_length = 0; int i = s.size()-1; while(s[i] == ' ') --i; ...
2019-04-08 20:23:20 86
原创 LeetCode 38.报数
LeetCode 38.报数我的思路暴力末尾放个哨兵感觉还能优化,明天补上string countAndSay(int n) { if(n == 1) return "1"; string old_s = "1", result = ""; char old_c = old_s[0], count = '0'...
2019-04-07 16:26:54 88
原创 LeetCode 35.搜索插入位置
我的思路int searchInsert(vector<int>& nums, int target) { if(nums.empty()){ return 0; } int i; for(i = 0; i < nums.size(); ++i){ if(nu...
2019-04-07 13:50:38 71
原创 LeetCode 27. 移除元素
我的思路尝试使用双指针法。快指针遍历到非val值,将非val值传给慢指针所在位置,慢指针+1int removeElement(vector<int>& nums, int val) { if(nums.empty()) return 0; int i, j; for(i = 0; i < nums....
2019-04-05 17:46:30 56
原创 LeetCode 26. 删除排序数组中的重复项
我的思路1 设置一个old变量,用于记录上一个位置的元素2 old和vector中下一个元素比较:如果不同则使之成为新的old值,并继续向下一个元素比较;如果相同则erase()掉,但下标不变(因为删了一个)。int removeDuplicates(vector<int>& nums) { if(nums.empty()) return 0...
2019-04-04 20:25:23 68
原创 LeetCode 21.合并两个有序链表
我的思路新建一个头节点比较已有的两个有序链表,将值小的接到新建的头节点后被接了的节点向后一个最后会有剩下的,直接接到尾部。因为剩下的这部分比之前的都大。ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode *h = new ListNode(-1); ListNode *resul...
2019-04-04 20:06:05 58
原创 LeetCode 20.有效的括号
我的思路一共四种情况,栈空的时候遇到左括号,栈不空的时候遇到左括号。栈空的时候遇到右括号,栈不空的时候遇到右括号。遇到左括号无条件入栈,遇到右括号分情况出栈或直接判错。bool isValid(string s){ stack<char> v; for (auto x : s) { if (x == '(' || x == '[' || x == '{') ...
2019-04-03 20:46:35 88
原创 LeetCode 13.罗马数字转整数
我的思路:遍历一遍,遇到相应字符,查看下一个字符,确定值,加和。class Solution {public: int romanToInt(string s) { int sum = 0; for(int i = 0; i < s.length(); ){ switch (s[i]){ ...
2019-04-02 21:36:10 78
原创 OpenGL与GLFW的关系
OpenGLOpen Graphics Library。OpenGL是一个由Khronos组织制定并维护的规范,它仅规定了每个函数该如何执行,以及它们的输出值,但并没有具体实现。GLFWGraphics Library Framework。一个符合OpenGL标准的具体的库。...
2019-01-19 20:41:56 1610
原创 C++ Classes
#pragma onceclass IntCell{public: explicit IntCell(int initialValue = 0); int read() const; void write(int x);private: int storedValue;};//IntCell.h#include "pch.h"#include "IntCell.h"In...
2019-01-13 21:20:53 166
空空如也
c#设置程序背景透明色后,此程序页面不存在了。。
2017-11-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人