04 2019 档案
摘要:首先这当然考的是图的遍历。 其次,这道题是不考虑与边界相连的O的,因此可以在条件判断时加一个是否与边界相连。由于图比较大的情况下,每一个都重新判断会使得重复遍历,因此建立一个visit二维数组,将所有与边界相连通的O全部遍历标记出来,然后再从边界内部的图形开始遍历。 第二,由于大图递归dfs会产生错
阅读全文
摘要:这个题使用深度优先搜索就可以直接遍历 DFS递归方法: BFS迭代方法:使用queue
阅读全文
摘要:IntelliJ IDEA下载安装,然后基本java操作: 然后依照网站学习java及其ide基本操作:https://lift.cs.princeton.edu/java/windows/ 但是下面这个要使用外部库,因此刚开始编译出错,首先需要下载两个库:algs4.jar stdlib.jar并
阅读全文
摘要:可参考博客:https://www.cnblogs.com/AndyJee/p/4630568.html,这个对本问题讨论比较详细,本文只针对leetcode答案和剑指offer答案; 对无符号整型的难度实际上不高,只需要不断右移与1取与就可以了,代码如下: 但是对于有符号就比较麻烦了,因为负数采用
阅读全文
摘要:牛顿法:这个方法更快,但是有两点注意: 1)牛顿法的原理: 2)更新值时溢出的问题: 牛顿法的前提:这个表达式在至少求解范围是单调递增的; 溢出减少就是使计算式的数字尽量小,尽量先做差再做和,或者先创造差,再做和; 二分法:
阅读全文
摘要:docker 安装参见docker官网,当cmd出现以下图像时安装正确; 然后进行bvlc/caffe环境创建,有两种,一种是直接pull github的bvlc,一种是本地创建image,直接使用github编译好的caffe1.0.0 python2.7.3 然后出现以下就算成功 可以查看下:
阅读全文
摘要:即定义三个哈希表来判断数独有效性空间复杂度O(3*10*n)时间O(n2),这道题和37是相关的题目,这道题的有效性为下一题填数独创造了条件;
阅读全文
摘要:解数独 深度优先搜索方法:以下为没有经过剪枝的代码
阅读全文
摘要:// Forward declaration of guess API. // @param num, your guess // @return -1 if my number is lower, 1 if my number is higher, otherwise return 0 int guess(int num); class Solution { public: i...
阅读全文
摘要:建立一个哈希表,每次查找,如果对应的列col,行row,小方格box中的数出现第二次,那么数独不合法; 据说还有深度优先搜索的方法,表示没有听懂:)
阅读全文
摘要:51的简化版,省去根据排列话棋盘的工作,直接计数,代码:
阅读全文
摘要:代码,由全排列转化而来,加上剪枝,整洁的代码: 共有4个变量,res(最终的结果),level,当前合理的解,n皇后的个数,visit,当前列是否放过皇后,由于本来就是在新的行方皇后,又通过visit判定,因此当前的新皇后肯定不在以往的行和列。因此只需要对新加的皇后判断斜对角是否符合要求; 其实就是
阅读全文
摘要:很经典很经典,虽然AC高但难度不小 采用深度优先搜索的代码(带注释)
阅读全文
摘要:采用二分查找,但要特别注意几点: 1)mid=a+(b-a)/2防止溢出; 2)判断是否是平方不能直接判断mid^2与num,有可能会溢出,因此先求mid_2=num/mid,当能够整除,且mid_2==mid时,即找到平方根,如果最终都没有找到,那么返回false; 利用数学方法:1+3+5+7+
阅读全文
摘要:这种有序数组当然要用二分查找,但我在居然看到最优解居然是暴力解法,不知道到底是怎么判的;这个是不标准版本二分查找 事实上,当right和left相邻时mid=(left+right)/2一定就是left,根据这个原理可以判断一定有mid<right;因此不妨保证nums[right]>target(
阅读全文
摘要:安装anaconda,下载assignment作业代码 作业代码数据集等2018版基于python3.6 下载提取码4put 本课程内容参考: cs231n官方笔记地址 贺完结!CS231n官方笔记授权翻译总集篇发布 CS231n课程笔记翻译:图像分类笔记(上) numpy参考:CS231n课程笔记
阅读全文
摘要:使用深度优先搜索:时间复杂度O(n),空间复杂度O(logn) 精简版:
阅读全文
摘要:深度优先搜索代码: 精简版:
阅读全文
摘要:安装完opencv3.4.1并且Cmake后,发现Python不能import,又装了Python版本的opencv; 由于是在conda环境下安装,opencv-python-4.0.1.24,最终我的目录是/home/joel/anaconda2/lib/python2.7/site-packa
阅读全文
摘要:https://blog.csdn.net/victoriaw/article/details/61195620#t0 input_data 没用的另一种解决方法:tensorflow1.8版本及以上加载mnist手写分类数据集 : input_data和 read_data_sets弃用的解决办法
阅读全文
摘要:tensorflow 使用: 【tensorflow使用笔记一】:安装linux下tensorflow环境的问题 【tensorflow使用笔记二】:tensorflow中input_data.py代码有问题的解决方法
阅读全文
摘要:由于input_data网页打不开,因此从博客找到代码copy: https://blog.csdn.net/weixin_43159628/article/details/83241345 将代码放置在主目录下以后缀.py结尾 或者将 /home/joel/.local/lib/python2.7
阅读全文
摘要:5月20更新: 使用借助队列实现bfs,定义len记录队列的尺寸直接进行遍历层序 更新之前:使用广度优先搜索和获得队列大小: 使用两个队列:
阅读全文
摘要:使用排序:O(2N)空间,O(2NlogN)时间 使用哈希表的方法:O(2N)空间,O(2N)时间
阅读全文
摘要:使用sort+map的方法: 哈希表方法:将每个单词映射到0~26个字母,并且对每个字母的数目做出表示;
阅读全文
摘要:一:暴力解法,能ac但是时间复杂度O(nk) 二,维护一个特殊的优先队列(使用deque实现)假设当前队列已经是优先队列(最大值在队首),而且这个队列是有序递减的,那么当新加入一个元素时执行两个操作, 1)检查队首下标是否合法,假如队首下标已经不在滑窗内,则将其弹出; 2)检查已有的队列中的元素是否
阅读全文
摘要:双层循环排序,时间为O(n2) 归并排序时间为O(nlog(n))
阅读全文
摘要:贪心算法:如果今天买明天能够盈利,那就今天买入明天卖出;对于这个问题来讲是具有最优子结构性质的 分情况: 1)当len<1;不会赚钱,return 0; 2)
阅读全文
摘要:从下标1开始,维护两个变量,一个是0~i-1中的最低价格low,一个是当前的最高利润res;先更新最高利润,在更新最低价格;应用了贪心算法的基本思想,总是选择买入价格最低的股票,代码如下: 具有最优子结构:如果当前的价格比之前最低的价格还低,那么更新low变量,每次都计算利润能否更大;
阅读全文
摘要:解法一:快速排序,时间O(nlog(n)),额外空间O(1),但是有两个样例会超时。 (土法分析)快速排序在有序的情况下时间复杂度O(n2)最高,而没有通过的样例估算约为50001个1和50000个2,因此O(n2)的复杂度约为10^10,某大佬说过,根据经验,超过10^9 OJ一般就不会通过,因此
阅读全文
摘要:递归: 迭代: 这道题目应该使用迭代方法,因为使用递归方法会出现stack overflow(并不是说递归的代码是错误的,事实上递归的代码大多数样例可以正确运行) 正确的递归如下:
阅读全文
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ cl...
阅读全文
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ ...
阅读全文
摘要:递归中序遍历,logn时间,但由于使用vector容器,空间复杂度O(n); 中序遍历法改进:O(log(n)) 时间,O(1)空间; 更精简版,只使用一个函数:
阅读全文
摘要:O(n2)的冒泡,选择,插入,先不贴,先贴归并,快排,堆排, O(nlog(n)) 归并排序 二路归并递归写法:时间O(nlog(n)),稳定,总时间O(nlog),空间:O(n+log(n)),n为内存,log(n)为栈空间 非递归和多路归并再说: 堆排序:对数组进行下标从1开始的堆排序,不稳定,
阅读全文
摘要:#include #include using namespace std; int main() { int k; cin>>k; vector > arr; vector a; int tmp; while(cin>>tmp){ int i=0; if(arr.size()>tmp; ...
阅读全文
摘要:leetcode141 环形链表 time O(n)space O(1) 快慢指针法: 使用fast指针以两步步长更新,使用slow以一步步长更新; tips: while判断的条件通过短路表达式 fast && fast->next 如果fast为NULL 那么就不会访问 fast->next,循
阅读全文
摘要:C++递归法 C++迭代法:代码应该简化下 C++迭代法进阶一:参考别人python的思路,先在上一轮循环令上一轮的尾节点,也就是前驱pre的pre->next=a,如果本轮循环能够执行,那么再在本轮循环中将pre->next更新为b,这样可以有效解决奇数和偶数节点的两两交换: -1——1——2——
阅读全文
摘要:抽象数据类型: 1)栈,vector 2)队列,链表,优先队列(堆) 3)集合,hash Set,Tree Set 4)映射(map),hash set,Tree Map 数据结构与算法: 练习方法: 面试解题套路: 链表题目: leetcode 206 反转链表 Reverse Linked Li
阅读全文
摘要:https://blog.csdn.net/caicai_zju/article/details/49227927
阅读全文
摘要:此问题可转化为Top K问题进行考虑,当用小顶堆选出K个最大值时,堆顶的元素即为第k大的元素 自己重载比较运算符:
阅读全文
摘要:leetcode刷题之后,很多问题老是记忆不深刻,因此特意开此帖: 一、对做过题目的总结; 二、对一些方法精妙未能领会透彻的代码汇总,进行时常学习; 三、总结面试笔试常见题目,并讨论最优解法及各种解法的优劣; leetcode探索中级算法 1)排序相关 快排,归并,堆排,插入,选择 1.1)基础算法
阅读全文
摘要:https://blog.csdn.net/sinat_39037640/article/details/74080509
阅读全文
摘要:这是一道hard题,不好想,但最后还是想出来了,私以为还是根据一些思想方法自己想出来做法印象比较深刻,其次看人家的做法思想自己写代码,其次看代码理解默写,其次直接抄代码; 首先,给每个孩子都发一个糖果vector<int> res(len,1), 然后调整, 正向调整,如果当前孩子比之前孩子的分数高
阅读全文
摘要:应用贪心算法:每次遍历范围为当前能达到的最远距离,如果将当前能达到的所有点全部遍历完成后,最大距离仍然没有超过终点,那么则不能到达终点;如果能到达的最大距离nums[i]+i大于当前能到的最大点t,那么更新t;
阅读全文
摘要:类似于区间调度问题,使用贪心算法:首先对所有气球按照起始坐标大小排序,然后每次总是优先选择起始坐标小的气球中的右边坐标,然后再选择下一个; 排完序之后,下一个可能有如上图所示几种情况, 1) 当next.end<t时,此时一定有next.start>start且next.start<t, 应该令t=
阅读全文
摘要:class Solution { public: bool lemonadeChange(vector& bills) { //贪心算法:每次找零先找最大的 vector m(3,0);//分别5,10,20 vector v={5,10,20};//实际上最后一个20不可能找零所以也可以不写; int len=b...
阅读全文
摘要:贪心算法:如果某一列not sorted,删除该列;时间O(A),空间O(1) C++代码:
阅读全文
摘要:作者:LoisLuo666 来源:CSDN 原文:https://blog.csdn.net/LoisLuo666/article/details/79560332 贪心算法:贪心法顾名思义就是不断贪心的选取当前最优策略的计算方法。 下面介绍几种贪心问题 问题一:货币选择问题 问题描述:分别有1,5
阅读全文
摘要:linux 下spyder安装: 安装qt4,python3 对应qt5 sudo apt-get install libxext6 libxext-dev libqt4-dev libqt4-gui libqt4-sqlsudo apt-get install qt4-dev-tools qt4-
阅读全文