算法
HELLO_蓝猫
这个作者很懒,什么都没留下…
展开
-
Leetcode 405. Convert a Number to Hexadecimal
405.Convert a Number to HexadecimalEasy379102Add to ListShareGiven an integer, write an algorithm to convert it to hexadecimal. For negative integer,two’s complementmethod is used.Note:...原创 2020-04-27 18:28:40 · 253 阅读 · 0 评论 -
Leetcode 257. Binary Tree Paths
257.Binary Tree PathsEasy108579FavoriteShareGiven a binary tree, return all root-to-leaf paths.Note:A leaf is a node with no children.Example:Input: 1 / \2 3 \ 5Output:...原创 2019-10-23 16:08:15 · 173 阅读 · 0 评论 -
Leetcode 226. Invert Binary Tree
homebrew作者都不会的题目Invert a binary tree.Example:Input: 4 / \ 2 7 / \ / \1 3 6 9Output: 4 / \ 7 2 / \ / \9 6 3 1/** * Definition for a binar...原创 2019-10-23 11:19:32 · 149 阅读 · 0 评论 -
编程之美 寻找发帖水王
// 编程之美 寻找发帖水王.cpp : 定义控制台应用程序的入口点。//有一个水王发帖超过一半 给你发帖所有的id 找到他//统计每个id出现次数 找到最大的(超过一半)#include "stdafx.h"#include #include #include using namespace std;class ID{public: int nTime原创 2017-01-03 21:25:44 · 462 阅读 · 0 评论 -
Leetcode54. Spiral Matrix
//便利走势只有四种右 下 左 上0123//往右走 决定最上的index 下走 决定右 左下 上左class Solution {public: vector spiralOrder(vector>& matrix) { vector ans; if(matrix.empty())return ans; int zouxian原创 2017-12-20 09:00:53 · 200 阅读 · 0 评论 -
Leetcode 64. Minimum Path Sum
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or right at原创 2017-12-30 22:20:35 · 258 阅读 · 0 评论 -
Leetcode 61. Rotate List
Given a list, rotate the list to the right by k places, where k is non-negative.Example:Given 1->2->3->4->5->NULL and k = 2,return 4->5->1->2->3->NULL.此题题目描述不清 踩的很多/** * Definition for si原创 2017-12-27 20:12:03 · 141 阅读 · 0 评论 -
Leetcode 63. Unique Paths II
Follow up for "Unique Paths":Now consider if some obstacles are added to the grids. How many unique paths would there be?An obstacle and empty space is marked as 1 and 0 respectively in the原创 2017-12-28 16:07:03 · 167 阅读 · 0 评论 -
Leetcode 52. N-Queens II
//一行一行的放置皇后 每放一个判断一次 歇着和竖着有没有重复 只判断已经放过的class Solution {public: vector> ans;// int count;//解法个数 bool IsCash(vector QueenAry, int nRow) //判断这一行和上面的行有没有一列或是在一个对角线的 { for (int i = 0; i<nRow; i原创 2017-12-21 10:12:25 · 303 阅读 · 0 评论 -
Leetcode 77. Combinations
class Solution {public: void DFS(int left, int right, int count, vector<int> &temp, vector<vector<int>> &ans) { //开始位置 结束位置 还需要组合的个数 两个答案 for (int i = left; i &l...原创 2018-03-01 11:31:26 · 154 阅读 · 0 评论 -
Leetcode 78. Subsets
78. SubsetsDescriptionHintsSubmissionsDiscussSolutionPick One和77题类似 DFSclass Solution {public: void DFS(int left,int count,vector<int>& nums,vector<int> &temp,vector<vector...原创 2018-03-01 13:05:19 · 170 阅读 · 0 评论 -
Leetcode 79. Word Search
79. Word SearchDescriptionHintsSubmissionsDiscussSolutionPick OneGiven a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell...原创 2018-03-09 11:26:46 · 115 阅读 · 0 评论 -
递归 全排列
#include <iostream>#include <vector>#include <memory>using namespace std;//123 132 213 231 312 321void fun(vector<vector<int>> &v,vector<int> &temp,vec原创 2018-03-12 15:19:01 · 159 阅读 · 0 评论 -
最大连续子序列
问题描述:给定一个整数序列,a0, a1, a2, …… , an(项可以为负数),求其中最大的子序列和。如果所有整数都是负数,那么最大子序列和为0;最基本的方法,穷举法将所有的结果写出来,找出最大的。两层循环,i和j,求数组中,i到j的和,时间复杂度n的三次方。如果将时间复杂度控制在O(n),只循环一次,可以这样。题目要求是连续序列和且大于0,就从头开始加,如果大于0就继续,但结果小于0,则前面...原创 2018-03-05 14:28:16 · 168 阅读 · 0 评论 -
Leetcode 80. Remove Duplicates from Sorted Array II
public int removeDuplicates(int[] nums) { if(nums.length==0)return 0; int count=1;//从一开始 int pre=nums[0]; int ans=1; for(int i=1;i<nums.length;i++) { if(nums[i]!=pre) { coun...原创 2018-03-12 17:55:00 · 118 阅读 · 0 评论 -
Leetcode 90. Subsets II
class Solution {public: bool equal(vector<int> cur, vector<int> last) //等于false才可以 { if (cur.size() != last.size())return false; for (int i = 0; i < cur.size(); i++) { if (...原创 2018-03-22 14:22:05 · 119 阅读 · 0 评论 -
Leetcode 94. Binary Tree Inorder Traversal
送分题 没什么说的Given a binary tree, return the inorder traversal of its nodes' values.For example:Given binary tree [1,null,2,3], 1 \ 2 / 3/** * Definition for a binary tree node. * pub...原创 2018-03-22 21:48:57 · 107 阅读 · 0 评论 -
分治算法和联机算法 最大子段和
今天算法课讲得是分治算法,以最大子段和为 给定由n个整数(可能为负数)组成的序列:a1,a2,…,an,求该序列的最大子段和。我最开始想到的是联机算法,从头到尾遍历一次,存放当前最大值和总和,总和小于0舍弃。分治算法是,分成两个段,递归的去解每个段的结果,每个字问题有三种情况,答案在左段,答案在右段,和包括中点,计算三者答案,找max。第三种情况,从中间往两侧走,和比最大之大保留,反之为0.// ...原创 2018-03-19 15:07:44 · 340 阅读 · 0 评论 -
Leetcode 82. Remove Duplicates from Sorted List II
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode deleteDupli...原创 2018-03-13 11:33:20 · 140 阅读 · 0 评论 -
Leetcode 86. Partition List
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode partition(L...原创 2018-03-20 14:31:07 · 158 阅读 · 0 评论 -
Leetcode 84. Largest Rectangle in Histogram
class Solution {public int largestRectangleArea(int[] heights) { //遍历一次数组的每一个元素 找凸的柱子(再加上最后一个 ) 然后往左算面积 int max=0; for(int i=0;i<heights.length;i++) { if(i==heights.length-1||heights...原创 2018-03-14 17:18:49 · 140 阅读 · 0 评论 -
Leetcode 95. Unique Binary Search Trees II
解法:二叉搜素树,想法是,把每一个数当根结点,然后去划分左右子树,最开始没有想好如何去吧结果放到数组中,只关注如何区分左右子书,重写方法,还是同样的类型,用来算每个节点的可能性,每个点都可能,然后保留当前点,左右划分,分完之后,不能划分只有两种,一种只有一个,一种是null,排列组合所有左右节点可能,放到ans。/** * Definition for a binary tree node. ...原创 2018-03-25 16:16:05 · 108 阅读 · 0 评论 -
leetcode 72. Edit Distance
题解参考http://www.cnblogs.com/grandyang/p/4344107.html72. Edit DistanceDescriptionHintsSubmissionsDiscussSolutionPick OneGiven two words word1 and word2, find the minimum number of steps required to conv...原创 2018-04-07 23:41:49 · 140 阅读 · 0 评论 -
Leetcode 97. Interleaving String
/*//分治法:如果首字母相同 就递归剩下的字符串 程序显而易见 但递归必然超时 所以用动态规划class Solution {public: bool isInterleave(string s1, string s2, string s3) { // Start typing your C/C++ solution below // DO NOT write int mai...原创 2018-04-08 14:28:53 · 114 阅读 · 0 评论 -
Leetcode 89. Gray Code
class Solution {public: vector<vector<int>> gray(int n) { if (n == 1) { return{ {0} ,{1} }; } else { vector<vector<int>> v = gray(n-1); vector...原创 2018-03-22 11:45:56 · 141 阅读 · 0 评论 -
邮局问题 快速排序 分治
// 邮局选址问题.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <algorithm>#include <string>#include <vector>#include <fstream>#include <memory..原创 2018-04-02 10:58:00 · 1153 阅读 · 0 评论 -
Leetcode 100. Same Tree
Given two binary trees, write a function to check if they are the same or not.Two binary trees are considered the same if they are structurally identical and the nodes have the same value.Example 1:In...原创 2018-04-02 13:26:35 · 109 阅读 · 0 评论 -
动态规划入门 数字三角形(POJ1163)
数字三角形(POJ1163)输入格式:5 //表示三角形的行数 接下来输入三角形73 88 1 02 7 4 44 5 2 6 5要求输出最大和与递归类似,分解成若干字问题,但相互直接有联系,每一层的最大值由下面那层而来。#include "stdafx.h"#include <iostream> #include &l...原创 2018-04-03 12:08:09 · 214 阅读 · 0 评论 -
北工大算法 作业2 动态规划 01背包问题
可以参考下面的文章 思路写的比较清晰https://blog.csdn.net/u010293698/article/details/48979623https://blog.csdn.net/sinat_22991367/article/details/51861373给定n种物品和一个背包,物品i的重量是wi,其价值为vi,背包的容量为C。背包问题是如何选择装入背包的物品,使得装入背包中物品的...原创 2018-04-03 16:20:02 · 467 阅读 · 0 评论 -
Leetcode 98. Validate Binary Search Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { int...原创 2018-03-29 16:07:04 · 121 阅读 · 0 评论 -
Leetcode 91. Decode Ways
class Solution {public: //动态规划 连着两个能变成新的加1 反之等于dp[i-1] bool judge(string s) { int gewei,shiwei,ans; gewei = s[1] - '0'; shiwei = s[0] - '0'; ans = gewei + 10 * shiwei; return (ans > ...原创 2018-04-12 14:03:49 · 125 阅读 · 0 评论 -
Leetcode 104. Maximum Depth of Binary Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2018-04-18 11:05:04 · 118 阅读 · 0 评论 -
Leetcode 102. Binary Tree Level Order Traversal
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2018-04-20 15:22:38 · 115 阅读 · 0 评论 -
Leetcode 103. Binary Tree Zigzag Level Order Traversal
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */cla...原创 2018-04-20 16:23:55 · 96 阅读 · 0 评论 -
Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal
解法:1.先序中第一个是根 2.中序根据顶点分左右两枝 3.先序先访问顶点 中序先访问左字数原创 2018-04-20 16:48:49 · 112 阅读 · 0 评论 -
Leetcode 101. Symmetric Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...原创 2018-04-25 15:18:30 · 171 阅读 · 0 评论 -
Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { publ...原创 2018-04-25 16:56:37 · 111 阅读 · 0 评论 -
bjut第二届算法
F:上课上课上课查看提交统计提问总时间限制: 1000ms内存限制: 256000kB描述ACSync 是个上课狂,大学期间曾立志要上完大学里所有的课,假设所有课都是年年开并且上课时间不变,聪明的你快来帮帮他算一下他的鸿鹄之志能否终成正果?输入第一行为 2 个数 N, M,分别表示课程的总数和 ACSync 可以上课的总年数;接下来的 N 行,第 i 行为两个整数 Ai, Bi (Ai <...原创 2018-04-25 17:09:46 · 243 阅读 · 0 评论 -
Leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { //和上一...原创 2018-04-25 19:18:03 · 180 阅读 · 0 评论 -
Leetcode 22. Generate Parentheses
class Solution {public: /* 左括号不超过n个 有左才有右 右括号个数不超过左括号 开头左括号 结尾右括号 */ vector<string> ans; void fun(int n,int m,string &s,int left,int right) //n为回溯法里面的层数 { if (n == (m-1)) { ...原创 2018-05-04 12:47:21 · 138 阅读 · 0 评论