数据结构与算法
文章平均质量分 55
Sim0Hayha
没有什么看点
展开
-
3Sum【三个数和为0】
PROBLEM:Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:The solution set mus...原创 2018-10-07 11:53:25 · 349 阅读 · 0 评论 -
Two Sum IV - Input is a BST【二叉搜索树中是否存在 “和==目标值” 的一对节点】
PROBLEM:Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target.Example 1:Input: 5 / \ 3 6 / \ ...原创 2018-05-06 13:33:23 · 415 阅读 · 0 评论 -
Non-decreasing Array【非递减数列】
PROBLEM:Given an array with n integers, your task is to check if it could become non-decreasing by modifying at most 1 element.We define an array is non-decreasing if array[i] <= array[i + 1] holds...原创 2018-05-05 10:48:35 · 340 阅读 · 0 评论 -
Nth Digit【第n个数字】
PROBLEM:Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...Note:n is positive and will fit within the range of a 32-bit signed integer (n < 231).Example 1:Inp...原创 2018-05-10 11:14:52 · 261 阅读 · 0 评论 -
Second Minimum Node In a Binary Tree【特定数中第二小的数】
PROBLEM:Given a non-empty special binary tree consisting of nodes with the non-negative value, where each node in this tree has exactly two or zero sub-node. If the node has two sub-nodes, then this n...原创 2018-05-02 18:55:49 · 179 阅读 · 0 评论 -
Rotate String【判断一个字符串是否为另一个字符串的偏转】
PROBLEM:We are given two strings, A and B.A shift on A consists of taking string A and moving the leftmost character to the rightmost position. For example, if A = 'abcde', then it will be 'bcdea' aft...原创 2018-05-09 13:11:53 · 268 阅读 · 0 评论 -
Repeated String Match【重复字符串匹配】
PROBLEM:Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it. If no such solution, return -1.For example, with A = "abcd" and B = "cdabcdab...原创 2018-04-18 23:38:04 · 331 阅读 · 0 评论 -
Intersection of Two Arrays【合并两个set】
PROBLEM:Given two arrays, write a function to compute their intersection.Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].Note:Each element in the result must be unique.The result can be...原创 2018-04-22 20:52:03 · 183 阅读 · 0 评论 -
Longest Univalue Path【数的最长路径】
PROBLEM:Given a binary tree, find the length of the longest path where each node in the path has the same value. This path may or may not pass through the root.Note: The length of path between two nod...原创 2018-04-11 15:37:36 · 295 阅读 · 0 评论 -
Binary Watch【二进制手表时间转换为普通时间】
PROBLEM:A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom represent the minutes (0-59).Each LED represents a zero or one, with the least significant b...原创 2018-05-20 18:26:57 · 938 阅读 · 0 评论 -
Sum of Two Integers【不用+ -,算加法】
PROBLEM:Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.SOLVE:class Solution {public: int getSum(int a, int b) { long long sum=a; ...原创 2018-04-29 22:46:02 · 240 阅读 · 0 评论 -
Find All Numbers Disappeared in an Array【找到数组中未出现的元素】
PROBLEM:Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements of [1, n] inclusive that do not appear in this array....原创 2018-05-25 16:22:51 · 194 阅读 · 0 评论 -
关于约瑟夫环问题的理解
有序列:0,1,2,3......,n-1(可以将0~n-1的序列值理解为任意数组下标),每次删除第m个,注意该序列首尾相连,即n-1的下一个为0,问最后剩下的数字是多少?此问题被称为约瑟夫环问题,可以用枚举找规律解决,但也可以使用动态规划来思考:1、记1~n-1序列最后剩下的数字为 f(n,m) ,其中n表示有n个数字,m表示每次删除第m个,因为这两个变量就能决定最后剩下的数字,所以以它...原创 2018-08-07 23:57:08 · 318 阅读 · 0 评论 -
KMP算法代码
本文主要是方便自己查找记忆,先贴代码:#include <string>#include <vector>#include <iostream>using namespace std;vector<int> GetNextval(string p) { // 由模式字符串p返回next数组 int pLen = p.size(); v...原创 2018-07-04 23:05:12 · 679 阅读 · 0 评论 -
Convert BST to Greater Tree【将二叉树转换】
PROBLEM:Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST....原创 2018-06-17 10:42:27 · 221 阅读 · 0 评论 -
Number Complement【求反码】
PROBLEM:Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.Note:The given integer is guaranteed to fit within the range of...原创 2018-06-08 10:36:58 · 172 阅读 · 0 评论 -
Find Mode in Binary Search Tree【找到BST树中出现最多的元素】
PROBLEM:Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred element) in the given BST.Assume a BST is defined as follows:The left subtree of a no...原创 2018-06-14 15:53:34 · 280 阅读 · 0 评论 -
Next Greater Element I【第一个数组中数字在第二个数组中找次大值】
PROBLEM:You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding places of ...原创 2018-06-13 22:47:10 · 260 阅读 · 0 评论 -
Repeated Substring Pattern【重复的子字符串【KMP】】
PROBLEM:Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowerca...原创 2018-06-06 00:42:27 · 360 阅读 · 0 评论 -
* Path Sum III【任意 起始点—终点 路径和】
PROBLEM:You are given a binary tree in which each node contains an integer value.Find the number of paths that sum to a given value.The path does not need to start or end at the root or a leaf, but it...原创 2018-05-23 13:19:54 · 373 阅读 · 0 评论 -
Word Pattern【熟练map容器】
PROBLEM:Given a pattern and a string str, find if str follows the same pattern.Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.Ex...原创 2018-04-15 15:05:45 · 208 阅读 · 0 评论 -
Power of Three【判断一个数是否为3的幂】
PROBLEM:Given an integer, write a function to determine if it is a power of three.Follow up:Could you do it without using any loop / recursion?SOLVE:class Solution {public: bool isPowerOfThree(in...原创 2018-04-14 20:52:32 · 921 阅读 · 0 评论 -
Add Digits
PROBLEM:Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.For example:Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one...原创 2018-03-20 00:59:15 · 160 阅读 · 0 评论 -
Palindrome Number【判断一个数是不是回文】
PROBLEM:Determine whether an integer is a palindrome. Do this without extra space.SOLVE(C++):class Solution {public: bool isPalindrome(int x) { if(x<0||(x%10==0&&x!=0)) ...转载 2018-07-11 22:21:23 · 403 阅读 · 0 评论 -
Rotate Array【翻转数组】
PROBLEM:Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].SOLVE(C++):#1.Time complexity: O(n). Space comp...转载 2018-02-19 22:04:28 · 506 阅读 · 0 评论 -
Find Pivot Index
POBLEM:Given an array of integers nums, write a method that returns the "pivot" index of this array.We define the pivot index as the index where the sum of the numbers to the left of the index is equa...原创 2018-03-14 19:30:11 · 170 阅读 · 0 评论 -
Majority Element【找主元素】
PROBLEMGiven an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element...转载 2018-02-18 20:22:43 · 368 阅读 · 0 评论 -
Linked List Cycle【判断链表是否有循环】
PROBLEM:Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?SOLVE:bool hasCycle(ListNode *head) { if(head == NULL || head -> next == NULL...转载 2018-02-14 20:46:48 · 281 阅读 · 0 评论 -
Single Number【只出现一次的数字】
Question:Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using ...转载 2018-02-14 20:07:37 · 184 阅读 · 0 评论 -
Intersection of Two Linked Lists【找链表的汇合点】
PROBLEM:Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists:A: a1 → a2 ↘ ...转载 2018-02-14 20:06:51 · 334 阅读 · 0 评论 -
Minimum Depth of Binary Tree
PROBLEM:Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.SOLVE:/** * Definition for a bina...原创 2018-03-07 13:44:06 · 158 阅读 · 0 评论 -
Roman to Integer【罗马数转阿拉伯数】
PROBLEM:Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.SOLVE:结论:罗马数字的计数方法是:比较当前数字与后一个数字的大小,如果大就加上该数,否则减去。C++class Solution {public: int ...转载 2018-02-21 16:20:10 · 187 阅读 · 0 评论 -
Minimum Distance Between BST Nodes
PROBLEM:Given a Binary Search Tree (BST) with the root node root, return the minimum difference between the values of any two different nodes in the tree.Example :Input: root = [4,2,6,1,3,null,null]O...原创 2018-03-09 01:37:08 · 375 阅读 · 0 评论 -
Add Binary【二进制相加】
PROBLEM:Given two binary strings, return their sum (also a binary string).For example,a = "11"b = "1"Return "100".SOLVE(C++):class Solution{public: string addBinary(string a, string b){ s...原创 2018-03-01 19:29:13 · 269 阅读 · 0 评论 -
Degree of an Array【一个数组的度】
PROBLEM:Given a non-empty array of non-negative integers nums, the degree of this array is defined as the maximum frequency of any one of its elements.Your task is to find the smallest possible length...原创 2018-03-19 20:50:17 · 267 阅读 · 0 评论 -
Binary Tree Level Order Traversal II【二叉树层序转换】
PROBLEM:Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).For example:Given binary tree [3,9,20,null,null...原创 2018-03-06 15:57:10 · 172 阅读 · 0 评论 -
Remove Linked List Elements
PROBLEM:Remove all elements from a linked list of integers that have value val.ExampleGiven: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6Return: 1 --> 2 --> 3 --> 4 -->...原创 2018-03-12 22:03:17 · 147 阅读 · 0 评论 -
Isomorphic Strings
PROBLEM:Given two strings s and t, determine if they are isomorphic.Two strings are isomorphic if the characters in s can be replaced to get t.All occurrences of a character must be replaced with anot...原创 2018-03-12 21:24:39 · 144 阅读 · 0 评论 -
Find Smallest Letter Greater Than Target【找到比目标数大的数字中的最小数】【二分的终止判断条件】
PROBLEM:Given a list of sorted characters letters containing only lowercase letters, and given a target letter target, find the smallest element in the list that is larger than the given target.Le...原创 2018-03-11 11:28:08 · 321 阅读 · 0 评论 -
Min Cost Climbing Stairs
PROBLEM:On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed).Once you pay the cost, you can either climb one or two steps. You need to find minimum cost to reach the t...原创 2018-03-11 00:24:05 · 181 阅读 · 0 评论