- 博客(46)
- 收藏
- 关注
原创 Angular 学习笔记(3)
Angular 学习笔记(3)引入图片普通地在 html 引入本地图片:<!--html--><img src="图片路径" alt="备注说明" /> <img src="assert/image/001.png" alt="" />把图片数据定义到业务逻辑中,在后台获取了一个图片地址,如何在前端展示呢?//.ts 在业务逻辑中获取这个图片的地址public picUrl = "assets/image/1.png";<!--html-->
2021-06-11 10:37:18
189
1
原创 leetcode 56. 合并区间
leetcode LeetBook 数组和字符串56. 合并区间我的思路之前做过类似的题目。首先排序,JS 的排序如果直接intervals.sort()并不能按照我们希望的样子排序。会有 15 排在 2 前面的情况。所以需要改写一下 sort 方法。排序结束之后,判断相邻的两个区间是否有重复的部分,如果有重复的部分那么就删除这两个区间,插入新的区间。并且这里注意要 i–进行回退,不然会发现有一些区间并没有被操作过。/** * @param {number[][]} intervals * @r
2021-06-09 13:35:14
126
原创 leetcode 35. 搜索插入位置
leetcode LeetBook 数组和字符串35. 搜索插入位置我的思路直接查询首先判断第 0 个数,如果 target 小于等于这个数,那就把它插入在第 0 位上。之后从 i=1 开始遍历,如果 target 小于这个数但是大于前一个数,那就插入在这个位置上。遍历结束后如果都没有插入数,那么说明这个数需要插入到数组的末尾,即为 nums.length 位置上。/** * @param {number[]} nums * @param {number} target * @retu
2021-06-09 11:38:57
111
原创 Angular学习笔记(2)
Angular(2)绑定数据定义数据定义数据在.ts 文件中声明属性的几种方式:public、protected、private,默认都是 public。private 只能在当前类中使用;protected 只有在当前类和他的子类中可以用;public 可以在类内和类外中使用。声明属性不要用 var、let、const,声明了就变成变量了。//定义数据的几种方式public title = 'I am a title of news.';content = 'I am the cont
2021-06-08 20:18:25
167
原创 codewars 5 kyu PaginationHelper
codewars 5 kyu PaginationHelper我的题解构造函数并完成方法。// TODO: complete this object/class// The constructor takes in an array of items and a integer indicating how many// items fit within a single pagefunction PaginationHelper(collection, itemsPerPage) { t
2021-06-08 10:19:41
290
原创 leetcode724.寻找数组的中心下标 总结reduce()用法
leetcode LeetBook 数组和字符串 724. 寻找数组的中心下标 总结reduce()用法我的思路遍历 nums 中的每个元素,分别计算该元素左右两边元素的和,如果相等,那么返回该元素下标。如果遍历结束都没有找到,那么返回-1。时间复杂度O(n2)O(n^2)O(n2),空间复杂度O(2)O(2)O(2)/** * @param {number[]} nums * @return {number} */var pivotIndex = function (nums) { f
2021-06-07 11:59:21
241
原创 leetcode 474. 一和零
leetcode 每日一题 474. 一和零我的思路我想的是用一个 map 存每个字符串中的 0,1。然后再用背包解决问题。最后还是没做出来,看了题解。题解思路官方题解使用了三维动态规划,三个维度分别是字符串、0 的容量和 1 的容量。定义三维 dp[i][j][k]表示在前 i 个字符串中,使用 j 个 0 和 k 个 1 能够得到的最多的字符串数量。最终答案为 dp[strs.length][m][n].var findMaxForm = function (strs, m, n) {
2021-06-06 17:52:17
73
原创 leetcode 203. 移除链表元素
leetcode 每日一题 203. 移除链表元素我的思路/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } *//** * @param {ListNode} head * @param {n
2021-06-05 22:57:36
130
1
原创 leetcode 160. 相交链表
leetcode 每日一题160. 相交链表我的思路链表!不知道用 JS 怎么处理链表,每日一题总能 get 到我的知识盲区。不会链表的我连思路都没有,哭哭。官方题解官方题解给了两种方法:哈希集合先遍历一遍 headA 的放入集合中,然后再遍历 headB,如果遍历到的 headB 在集合中存在的话,那么就是和 headA 的交点。var getIntersectionNode = function (headA, headB) { var set = new Set(); var
2021-06-05 12:14:48
54
原创 codewars 5 kyu Maximum subarray sum
codewars 5 kyu Maximum subarray sum我的思路最开始的思路是使用前缀和,找到最大和最小的前缀和一减不就行了,然后发现我这么写不对劲,有可能最小的前缀和在最大的前缀和的后面。var maxSequence = function (arr) { // ...这一版我也不知道自己当时是怎么想的了。也不知道写了点啥。唉 console.log(arr); if (arr.length <= 1) return arr.length; var prefix
2021-06-03 21:22:58
100
原创 leetcode 525. 连续数组
leetcode 每日一题 525. 连续数组我的思路前缀和,把第一个设为 0,遇到 1 前缀和+1,遇到 0 前缀和-1,然后找前缀和中最后一个 0 的位置,返回即为结果。哇,是不是看起来很简单?简直大错特错!题目要求最长连续子数组,这个子数组不一定从最开始就有啊。比如数组[0,0,1,0,0,0,1,1],就是最后 6 个是题目想要的数组。var findMaxLength = function (nums) { // if(nums.length<2) return 0; var
2021-06-03 16:27:39
114
原创 codewars 6 kyu Sort the odd
codewars 6 kyu Sort the odd题目大意给定一个数组,将其中的奇数排序,偶数的位置不变。我的思路创建两个新的数组 ans 和 odd。odd 数组,用于存奇数并排序;ans 为结果数组。先遍历一遍 array 数组,如果是奇数,将该数存入 odd 数组,并且存入对应位的 ans 存负无穷,否则 ans 存入遍历到的偶数。然后将 odd 中的数排序,最后遍历 ans 数组,如果该位为负无穷,将 odd 中第一位 shift 出并存到 ans。function sortArray
2021-06-02 22:49:45
122
原创 leetcode 523. 连续的子数组和
leetcode 每日一题 523. 连续的子数组和我的思路遍历数组,遍历以第 i 个元素为起点的所有子数组,用 temp 记录当前的总和,并计算是否为 k 的倍数,如果是则返回 true;否则,遍历结束后返回 false。时间复杂度O(n2)O(n^2)O(n2),空间复杂度O(1)O(1)O(1)只是 temp 占用了空间。93 / 94 个通过测试用例。 最后一个果然超时了。var checkSubarraySum = function (nums, k) { for (let i
2021-06-02 13:47:27
112
原创 codewars 4ky Sum of Intervals
codewars 4ky Sum of Intervals题目大意:给定一个数组,这个数组是由如[3,5]这样的区间 Array 组成的,求区间的长度。如果区间之间有交叉,那么不重复计算交叉部分。如果给定的数组为:[[1,5],[2,6]],那么这个相当于是计算区间[1,6],这个区间的长度为 5。我的思路:将区间先进行排序(这个地方卡了很久,难受),排序后得到的有序区间,可以比较前一个区间的右端和后一个区间的左端,如果后一个区间的左端小于前一个区间的右端,证明这两个区间有交叉部分,那么合并这两个
2021-06-01 22:21:01
604
1
原创 leetcode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
leetcode 每日一题1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?我的思路对于 queries 中每个的 querie,都可以计算出最少吃的个数(等于天数)以及最多能吃到的个数(等于天数 × 每日最多能吃到的个数)。根据示例 2,可以思考出:如果我们计算出 candies 的前缀和,每个对应 querie[0]位置的前缀和正好在最大与最小之间,那么一定能吃到!然后就出现了第一个问题!示例中的第一个示例,由于[0,2,2]这个 querie 的 maxeat 为 4,mineat 为 2
2021-06-01 13:51:14
144
原创 正则表达式
感觉刷JS题的时候用到正则表达式的情况十分多。学习并总结一下正则。正则表达式测试网站普通字符符号意义[abc]匹配[]中的字符[^abc]匹配除了[]中字符的其他所有字符[A-Z]匹配所有大写字母\cx匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。\d匹配一个数字字符。等价于 [0-9]。\D匹配一个非数字字符。等价于
2021-05-31 16:29:42
62
原创 codewars 6 kyu Replace With Alphabet Position
codewars 6 kyu Replace With Alphabet Position题目大意:给一个字符串,按顺序返回其中字母的号码,定义 a=1,b=2,……我的思路是,首先先把字符串中的大写转小写,然后移除标垫符号和空格。最开始的时候忘记考虑数字,错了一次,所以数字也是应该被移除的。接下来使用小写字母的 ASCII 码即可得到答案。注意空格。function alphabetPosition(text) { text = text .toLowerCase() .rep
2021-05-31 11:01:28
114
原创 codewars 6kyu Does my number look big in this?
codewars 6kyu Does my number look big in this?题目大意:判断一个数是否是水仙花数。function narcissistic(value) { // Code me to return true or false var temp = String(value).split(""); var ans = 0; var n = temp.length; for (let i = 0; i < n; i++) { ans +=
2021-05-31 10:11:50
112
原创 leetcode 342. 4的幂
leetcode_5月31日每日一题342. 4的幂给你一个整数 n,请你判断该整数是否是 4 的幂次方。如果是,返回 true;否则,返回 false 。如果存在一个整数 x 使得 n=4xn = 4^xn=4x ,则认为 n 是 4 的幂次方。和昨天一样的简单,但是需要注意 n 的范围−231<=n<=231−1-2^{31} <= n <= 2^{31} - 1−231<=n<=231−1。var isPowerOfFour = functi
2021-05-31 10:08:31
95
原创 codewars 5kyu Simple Pig Latin
codewars 5kyu Simple Pig Latin题目大意:把每个单词的第一个字母移到该单词的末尾,最后在单词末尾加上 ay,输出字符串。标点符号不进行处理。我的思路是先把每个单词以空格为分割存到一个列表里,对列表里每个单词进行处理,如果该词是标点符号,不做处理,否则就把该词的第一个字母移到该词的末尾,最后在单词末尾加上 ay 和空格,如果是最后一个单词,末尾不加空格。function pigIt(str) { //Code here var temp = str.split(" "
2021-05-30 16:47:15
157
原创 codewars 7kyu You‘re a square!
codewars 7kyu You’re a square!题目大意是判断一个数 n 是不是整数的平方。-1 => false0 => true3 => false4 => true25 => true26 => false我的代码就是简单判断一下。var isSquare = function (n) { // console.log(Math.pow(n,1/2)); if (n < 0) { return false;
2021-05-30 15:15:51
158
原创 leetcode 231. 2 的幂
leetcode的20210530每日一题231. 2 的幂给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true;否则,返回 false 。如果存在一个整数 x 使得 n=2xn = 2^xn=2x ,则认为 n 是 2 的幂次方。题目简单,但是需要注意n的范围−231<=n<=231−1-2^{31} <= n <= 2^{31} - 1−231<=n<=231−1var isPowerOfTwo = function(n)
2021-05-30 14:59:45
105
原创 codewars 6kyu Valid Braces
codewars 6kyu Valid Braces题目大意:给定一个由括号组成的字符串,判断这个字符串中的括号是否匹配。给几个例子:‘()’ >>true‘({)}’ >> flase‘{[()]}’ >>true首先想到堆栈!用到了今天刚刚学到的 for offunction validBraces(braces) { //TODO var temp = []; for (ch of braces) { if (ch == "("
2021-05-29 19:03:27
197
原创 leetcode 560. 和为 K 的子数组
leetcode 560. 和为 K 的子数组写了一个超时的。时间复杂度O(n2)O(n^2)O(n2);空间复杂度O(1)O(1)O(1)//var subarraySum = function (nums, k) { var ans = 0; for (let i = 0; i < nums.length; i++) { //遍历nums考虑每个位置作为子数组开头的情况 var sum = 0; for (let j = i; j > nums.leng
2021-05-29 10:51:17
81
原创 leetcode 477. 汉明距离总和
leetcode 5 月 28,每日一题477. 汉明距离总和参考官方题解两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。对应数组 nums 中的某个元素 val,如果其二进制的第 i 位为 1,只需要统计 nums 中有多少元素的第 i 位为 0,就计算出了 val 与其他元素在第 i 位上的汉明距离之和。假如第 i 位上共有 c 个 1,有(n−c)(n-c)(n−c)个 0,那么该位上的汉明距离为c∗(n−c)c*(n-c)c∗(n−c)class Solution:
2021-05-28 14:54:02
93
原创 codewars 6kyu Who likes it?
codewars 6kyu Who likes it?这个题没啥难度,就是根据题意输出字符串。function likes(names) { // TODO ans = ''; if(names.length == 0){ ans += 'no one likes this'; } else if(names.length == 1){ ans += names[0] + ' likes this'; }else if(names.length == 2){
2021-05-27 23:34:08
134
原创 codewars 7_kyu Is this a triangle
codewars 7_kyu Is this a triangle?题目大意:给定 3 个整数为三角形的三条边,判定这三条边能否组成一个三角形。我的解法就是高中数学判定一下。function isTriangle(a, b, c) { if (a + b > c && a + c > b && b + c > a) { return true; } return false;}没错,又到了公开处刑的环节,人家怎么都能一句话写出
2021-05-27 23:02:25
124
原创 codewars 7kyu Beginner Series #3 Sum of Numbers
codewars7kyu Beginner Series #3 Sum of Numbers这个题意思是,给两个数 a,b,然后计算从区间[a,b]各项之和。没错,就是一个等差数列求和嘛!但是 a 和 b 不一定是有序的,所以要检查一下大小。但是,我最开始天真的以为负数需要特意地处理一下!这是改进后的代码:function getSum(a, b) { //Good luck! var left = Math.min(a, b); var right = Math.max(a, b);
2021-05-27 22:54:36
267
原创 codewars 6kyu Multiples of 3 or 5
codewars 6kyu Multiples of 3 or 5该题大意是计算小于number 的数中能够整除3或整除5的数 的和。如果一个数既能被3整除也能被5整除,那么这个数只计算一次。我写的代码:function solution(number) { var ans = 0; for (let i = 3; i < number; i++) { if (i % 15 == 0) { ans += i; } else if (i % 3 == 0) {
2021-05-27 22:45:11
152
原创 codewars 7kyu Vowel Count
codewars 7kyu Vowel Count这个题的意思是,给一个字符串,计算字符串中元音字母( aeiou )的个数,输入只包括小写字母和空格。我写的:function getCount(str) { var vowelsCount = 0; // enter your majic here for (let i = 0; i < str.length; i++) { if ( str[i] == "a" || str[i] == "e" |
2021-05-27 22:25:11
162
原创 leetcode 461. 汉明距离
2021.5.27,leetcode 每日一题461. 汉明距离用 python 写出来了class Solution: def hammingDistance(self, x: int, y: int) -> int: a = x^y a = str(bin(a)) ans = 0 # print(a,type(a)) for ch in a: if ch=='1':
2021-05-27 10:47:40
72
原创 codewars 6kyu_Sum of Digits
今天发现一个有意思刷 JS 题的网站!哎呀,其实是朋友推荐到的 codewars希望能够快速学会 JS 语法。今天做了一道题。6kyu_Sum of Digits / Digital Root这个题主要意思是给定一个数字 n,需要把 n 的各位数字加起来,如果得到的结果不是一位数,那么需要再把得到的结果的各位数字加起来。题目简单,主要是为了熟悉 JS 语法。function digital_root(n) { if(n<10){ return n; }
2021-05-25 23:15:09
132
原创 leetcode 1707与数组中元素的最大异或值
leetcode 刷题5.23的每日一题题是1707. 与数组中元素的最大异或值,最近异或的题目真滴很多。这道题可以采用字典树的方法。字典树不太会,先总结在这里吧!字典树,又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。字典树的优点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。字典树的性质:根节点不包含字符,除根节点外每一个节点都只
2021-05-24 19:59:48
110
原创 Angular学习笔记(1)
Angularangular是用于构建用户界面的JavaScript框架,主要被用来开发单页面应用程序。下载angular:下载node.js,安装node.js的稳定版本安装cnpm:npm install -g cnpm安装Angular: npm install -g @angular/cli或者cnpm install -g @angular/cli使用ng -v 查看Angular是否安装成功,以及查看Angular版本创建Angular项目:5. 在cmd中找到项目目录6.
2021-05-24 15:08:20
157
原创 leetcode 664. 奇怪的打印机
leetcode 664. 奇怪的打印机动态规划!!dp[i][j]是字符串区间[i,j]中需要的最少的打印次数。首先初始化 dp[i][j]为很大的值。打印一个字符串需要 1 次,即为 dp[i][i] = 1当字符串长度大于等于 2 时,判断两端字符是否相等?即为s[i] == s[j] ?如果 s[i] == s[j] 那么 dp[i][j] = dp[i][j-1]如果 s[i] != s[j] 那么就需要遍历一下,在[i,j-1]中找一个分割点 k,找到能够使得两边之和最小的分割
2021-05-24 11:38:14
166
原创 python sorted()
刷题总结今天做了一道 leetcode 的每日一题 692. 前 K 个高频单词题目本身并不难,如果会 python 中 sorted 的使用,这道题十分简单。我的思路是建立一个字典,然后把每个 value 排个序,直接输出前 k 个 key 值即可。但是这样就忽略了当 value 值相同时,key 值也需要排序。查看题解,发现了 sorted 的使用比想象中更加强大。在此总结一下。sorted() 函数对所有可迭代对象都可以进行排序操作,可迭代对象包括列表、字典等。sorted 可以用于对集合
2021-05-20 23:03:57
179
原创 hdoj 1465
不容易系列之一Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22034 Accepted Submission(s): 9560Problem Description大家常常感慨,要做好一件事情真的不
2017-08-09 10:52:24
203
原创 HDOJ1096 HDOJ1108
【原题】A+B for Input-Output Practice (VIII)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 160560 Accepted Submission(s): 48526
2017-07-28 11:45:46
223
原创 HDOJ1021
【原题】Fibonacci AgainTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 61881 Accepted Submission(s): 28892Problem Descripti
2017-07-26 21:22:10
218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人