哈希解法,注意unorde_map的初始化和访问不存在的返回值 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快 ...
分类:
其他好文 时间:
2020-05-06 19:44:25
阅读次数:
111
题目: 解答: 此题的正确解法是利用到了一个一维数组和一个 HashMap,其中数组用来保存数字,HashMap 用来建立每个数字和其在数组中的位置之间的映射。 插入操作——先看这个数字是否已经在 HashMap 中存在,如果存在的话直接返回 false,不存在的话,将其插入到数组的末尾,然后建立数 ...
分类:
编程语言 时间:
2020-05-05 17:38:33
阅读次数:
80
解法1 思路 数组中的每个元素 依次 作为子序的头元素 ,枚举各自构成子序的结果 双for O(n^2) 160 ms 代码 优化 动态规划 "动态规划算法思想" ...
分类:
其他好文 时间:
2020-05-04 19:12:16
阅读次数:
54
给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 来源:力扣(LeetCode) 解法一:记录树高度 /** * Definition for a binary tree node. * struct T ...
分类:
其他好文 时间:
2020-05-04 17:24:08
阅读次数:
52
题目: 解法: 方法一:先反转整个字符串,然后在反转每个单词。 方法二:迭代器。 1 class Solution { 2 public: 3 4 string reverseWords(string s) 5 { 6 string::iterator it=s.begin(), bg=it; 7 ...
分类:
其他好文 时间:
2020-05-03 21:50:46
阅读次数:
67
题目: 解答: 方法一:暴力解法【通过】 思路: 遍历从 1 到 N 的每个数字 X,判断 X 是否为好数。 如果 X 中存在 3、4、7 这样的无效数字,则 X 不是一个好数。 如果 X 中不存在 2、5、6、9 这样的旋转后会变成不同的数字,则 X 不是一个好数。 否则,X 可以旋转成一个不同的 ...
分类:
其他好文 时间:
2020-05-03 21:40:38
阅读次数:
76
题目: 解法: 设置两个指针,一前以后进行扫描判断。 1 class Solution { 2 public: 3 4 //判断是否为合法,即是否为数字和字母 5 bool isAlphanumeric(char &c) 6 { 7 if(c >= 'A' && c <= 'Z') 8 { 9 c ...
分类:
其他好文 时间:
2020-05-03 20:28:39
阅读次数:
65
题目: 解答: 方法一: 线性时间复杂度解法这道题最优的解法就是线性复杂度了,为了保证每个元素是唯一的,至少得把每个字符都遍历一遍。 算法的思路就是遍历一遍字符串,然后把字符串中每个字符出现的次数保存在一个散列表中。这个过程的时间复杂度为 O(N)O(N),其中 NN 为字符串的长度。 接下来需要再 ...
分类:
其他好文 时间:
2020-05-03 20:16:06
阅读次数:
49
解法:总和为奇数必为false,如果数字的某种组合能够等于 所有数字的总和/2。 #include <bits/stdc++.h> using namespace std; bitset<50005> flag; ///bitset 在 bitset 头文件中, ///是一种类似数组的结构, /// ...
分类:
移动开发 时间:
2020-05-03 16:15:46
阅读次数:
89
题目: 解法: 方法一:先序遍历 1 class Solution { 2 public boolean isSubtree(TreeNode s, TreeNode t) { 3 String tree1 = preOrder(s, true); 4 String tree2 = preOrder ...
分类:
其他好文 时间:
2020-05-03 15:01:16
阅读次数:
50