入坑codewars

article/2025/8/18 20:53:52

前几天做LeetCode上的大数乘法,代码没错,可就是提交不成功,显示SyntaxError: Unexpected token var
我把所有代码都注释掉,只留下return 1,依然报同样的错误。。。感觉LeetCode对JSer不是特别友好
刚刚在node社区看到有人推荐codewars,立马去体验一番。注册要写个代码测试一下身份,这个细节有意思(虽然代码很简单)。
codewars,黑色的主题风格,很符合coder。而且可用语言非常广,连TypeScript都有!!
然后codewars给我推荐了一题=>codewars-iqTest

这题虽然很简单,但是很有意思,对我的启发挺大的,让我发现了自己的一些不足。
题目:意思就是要找出数串(不是数组,这是一个坑)中跟其他数不相同的一个数(奇偶方面)

clipboard.png

我一开始的写法是:以第一个数的奇偶性为标准,后面的数跟这个标准一样,那就返回之前记录的一个跟这个标准不同的数的下标(如果有的话)。如果跟这个标准不同,那就记录下标。这样遍历完之后就如果还没有return,那结果就只能是第一个数或者最后一个数。判断一下seen就知道是头还是尾了。时间复杂度O(n)

function iqTest(numbers){let number = numbers.split(' ')let tag = number[0]%2let resIndex = ''let seen = falsefor(let i = 1, len = number.length; i < len; i++) {if(number[i]%2 === tag) {if(resIndex !== '') return resIndex+1seen = true}else {resIndex = i}}return seen? resIndex + 1: 1
}

虽然成功AC,但我明显感觉代码写得不是很优雅。在评论区看到有人用两个数组分别装奇数偶数,我恍然大悟,瞬间感觉自己宛如zz...我怎么一开始没想到orz
这一题完全暴露了我的不足,让我深思。遇到编程题,也许我更多地是在微观上进行思考,关注执行流程的每个细节,代码怎么执行。这个是没错的,但缺乏了宏观的视角,会变得片面。正所谓不识庐山真面目,只缘身在此山中,这一题如果宏观上把奇偶剥离,那什么问题都解决了,简直不要太简单!!

function iqTest(numbers){let number = numbers.split(' ')let odd = [],even = []number.forEach((item,index) => {item % 2 == 0? even.push(index + 1): odd.push(index + 1)})return odd.length === 1? odd[0]: even[0]
}

短短几行代码,也是一次遍历,时间复杂度O(n),这才是优雅地写代码!(看到社区高票答案有用filter扫两次,我觉得用forEach一次就够了)
此外,AC之后还能看大佬们的代码,按clever排序,看到了一下代码:

clipboard.png
看到这样的代码,我真的有点兴奋,想法太妙了!虽然包含indexOf,一共遍历了三遍。但是不重要,关键是这个思想要学习,可以应用到其他地方。
首先他用map将每个元素模2,这就像同化一样,因为只有奇数和偶数,所以先把奇数和偶数都分别同化成一个样,0或1。求和,大于1就返回偶数的位置,否则返回奇数的位置。
不过我觉得reduce累加的步骤没有必要,只要把前三个数加起来就知道不同的数的奇偶性,或者可以在第一次遍历就记录0或1的数量,省一次遍历。

喜欢codewars,这里人个个都是人才,说话又好听


http://chatgpt.dhexx.cn/article/XDBD5KKd.shtml

相关文章

CodeWars 我二了

昨天刷题,不经意间刷出来一个小彩蛋👇 今天醒来便发现, 卧槽,自己出现在解答列表第二,这lima,我一个小辣鸡也上榜了?🐂 话不多说,看键 警告,长文劝退,不是我啰嗦,是这题目一直在bibi赖赖 Simple Fun #345: The Original Numbers Task Some players are playin…

codewars题目

codewars题目解答 1.Calculating with Functions2.Sum of Pairs3.Maximum subarray sum4.Rot135.Calculating with Functions 1.Calculating with Functions 我的解决方案&#xff08;粗糙的一批&#xff09; function common(n, val) {var a, b;for (var key in n) {a key;b …

编程刷题平台Codewars初体验-Java

点此欢迎光临我的个人网站【一几文星球】 最近发现了一个很多网友都在推荐的编程刷题平台Codewars&#xff0c;作为一个对啥都好奇&#xff08;啥都学不深 &#xff09;的编程菜鸟&#xff0c;我二话不说直接开始注册体验。 网站一进&#xff0c;嘿&#xff0c;全英文&#x…

Codewars | 使用入门

https://jingyan.baidu.com/article/adc81513864eebf723bf73ab.html https://www.codewars.com/trainer/setup 注册以后&#xff0c;大家的编程段位是8段。段位越高&#xff0c;段数越小。 目前笔者的段位是6段。通过解决难度在6段和6段以上的问题可以获得段位的提升。当然&…

梯度提升树(GBDT)

提升树模型 提升树是以分类数或回归树为基本分类器的提升方法。提升方法实际采用加法模型&#xff08;即基函数的线性组合&#xff09;与前向分布算法&#xff0c;以决策树为基函数的提升方法为提升树&#xff08;boosting tree&#xff09;。基本分类器 x < v x<v x<…

机器学习: 提升

文章目录 Github提升的概念理解与随机森林的比较提升算法 GBDT参数设置和正则化 XGBoostAdaboost算法总结 Github 系列文章 pdf 版本已经上传至&#xff1a; https://github.com/anlongstory/awsome-ML-DL-leaning/tree/master/xiaoxiang-notes 欢迎 Star 和下载 ? 提升的概…

多模态深度学习综述:网络结构设计和模态融合方法汇总

点击上方“机器学习与生成对抗网络”&#xff0c;关注"星标" 获取有趣、好玩的前沿干货&#xff01; 作者丨小奚每天都要学习知乎 编辑丨极市平台 来源丨https://zhuanlan.zhihu.com/p/152234745 一、简介 从2010年开始&#xff0c;深度学习方法为语音识别&#xff0…

回归分析(数据拟合---MATLAB和1stopt软件)

回归分析&#xff08;regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 回归分析按照涉及的变量的多少&#xff0c;分为一元回归和多元回归分析&#xff1b; 按照因变量的多少&#xff0c;可分为简单回归分析和多重回归分析&#xf…

利用Excel的LINEST计算线性拟合的斜率和截距的不确定性

目录 线性拟合的斜率和截距的不确定性Excel数组函数LINESTLINEST结果的含义LINEST输出的10个统计参数含义如下&#xff1a; 模型预测 y ^ \widehat{y} y ​ m x b mxb mxbReferences 线性拟合的斜率和截距的不确定性 利用熟悉的Excel绘图功能&#xff0c;可以根据距离-高程散…

机器学习算法——Kmeans

1.k-mean算法的原理 1、选取K个点做为初始聚集的簇心 2、分别计算每个样本点到K个簇核心的距离&#xff08;这里的距离一般取欧氏距离或余弦距离)&#xff0c;找到离该点最近的簇核心&#xff0c;将它归属到对应的簇 3、所有点都归属到簇之后&#xff0c;M个点就分为了K个簇…

【时序】Reformer:局部敏感哈希(LSH)实现高效 Transformer 论文笔记

论文名称&#xff1a;Reformer: The Efficient Transformer 论文下载&#xff1a;https://arxiv.org/abs/2001.04451 论文年份&#xff1a;ICLR2020 论文被引&#xff1a;706&#xff08;2020/04/20&#xff09; 论文代码&#xff1a;https://github.com/google/trax/tree/mast…

损失函数MSE和MAE的区别以及如何选择

1、均方误差&#xff08;L2损失&#xff09; 均方误差(MSE)是最常用的回归损失函数&#xff0c;计算方法是求预测值与真实值之间距离的平方和&#xff0c;公式如下&#xff1a; M S E 1 m ∑ m i 1 ( y i − y ^ i ) 2 MSE\frac{1}{m} \sum_{m}^{i1}\left(y_{i}-\hat{y}_{i}…

连载|GBDT如何进行回归和分类

GBDT 在前几年的机器学习竞赛以及工作中&#xff0c;人们使用着各种传统算法进行调参取得性能的提升&#xff0c;突然有一天杀出了一种名为GBDT的算法&#xff0c;改变了当前的格局&#xff0c;该算法在不同的场景中总是能够产生很好的效果&#xff0c;本文就让我们来了解一下…

最小二乘法多项式曲线拟合数学原理及其C++实现

目录 0 前言1 最小二乘法概述2 最小二乘法求解多项式曲线系数向量的数学推导2.1 代数法2.2 矩阵法 3 代码实现4 总结参考 0 前言 自动驾驶开发中经常涉及到多项式曲线拟合&#xff0c;本文详细描述了使用最小二乘法进行多项式曲线拟合的数学原理&#xff0c;通过样本集构造范德…

GB和GBDT 算法流程及分析

1、优化模型的两种策略&#xff1a; 1&#xff09;基于残差的方法 残差其实就是真实值和预测值之间的差值&#xff0c;在学习的过程中&#xff0c;首先学习一颗回归树&#xff0c;然后将“真实值-预测值”得到残差&#xff0c;再把残差作为一个学习目标&#xff0c;学习下一棵回…

机器学习和深度学习性能指标

这里写目录标题 1、声明2、机器学习评估性能指标2.1、回归&#xff08;Regression&#xff09;算法指标2.1.1、平均绝对误差 MAE2.1.2、均方误差 MSE2.1.3、均方根误差 RMSE2.1.4、决定系数R^22.1.5、解决评估指标鲁棒性问题 2.2、分类&#xff08;Classification&#xff09;算…

多模态信息融合研究

1、主要研究方向 多模态学习可以划分为以下五个研究方向&#xff1a; 多模态表示学习 Multimodal Representation&#xff1a;主要研究如何将多模态的数据所蕴含的语义信息通过embedding的方式实现向量化&#xff0c;便于后续的计算&#xff1b; 模态转化 Translation&#…

【时序】DeepGLO:可以学习全局依赖和局部信息的多时间序列预测模型

论文名称&#xff1a;Think Globally, Act Locally: A Deep Neural Network Approach to High-Dimensional Time Series Forecasting 论文下载&#xff1a;https://arxiv.org/abs/1905.03806 论文年份&#xff1a;NeurIPS 2019 论文被引&#xff1a;134&#xff08;2022/04/21&…

独立性检验(卡方检验)

独立性检验(Test for Independence)是根据频数来判断两类因子是彼此独立还是彼此相关的一种假设检验。假如对某一个数据集有X&#xff08;值域为x1, x2&#xff09;跟Y&#xff08;值域为y1, y2&#xff09;变量&#xff0c;下面是他们的频数表&#xff1a; x1 x2 汇总 y1 …

列联表分析——独立性检验(卡方检验)

第一步&#xff1a;建立原假设和备择假设 H0&#xff1a;两变量相不立&#xff1b;H1&#xff1a;u两变量相互b独立 第二步&#xff1a;计算自由度和理论频数 第三步&#xff1a;计算卡方统计量 实际观察次数与理论次数之差的平方再除以理论次数得到的统计量近似服从卡方分布…