2021/3/2 被自己坑到的一天,大家都开始春招了,我却浪费了假期一个月。。。加油吧。弥补回来

leetcode题解:

12. 整数转罗马数字

https://leetcode-cn.com/problems/integer-to-roman/

有两种做法:


  1. 硬性拆解,直接制作出大表格,按照表格来查找检索。
  2. 贪心算法

  1. 强解
    根据总结推理得来的规律。

  2. 贪心
    先用大的,直到大的不够用才转到小的
    nums=[1000,900,500,400,100,90,50,40,10,9,5,4,1],
    chars=['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'];

13. 罗马数字转整数

https://leetcode-cn.com/problems/roman-to-integer/


  1. 我的题解比较繁琐,直接就按照上一题的nums,chars数组来比较做,chars变成map,但是没想太多,map的value仍为数组下标。先是对比index和index+1位置的组合是否存在,存在就result加上对应的数,不存在就进行一对一相加。

  2. 在简洁点的做法,就是直接将map(罗马数字,对应的二进制数字)这样写,直接就可以加上map.has('字符')。
    链接

四数之和不会,还有判断字符串reg的也不会



牛客网做题

  1. JavaScript的数据类型分为两种:原始类型(即基本数据类型)和对象类型(即引用数据类型):
    基本类型:String、Number、Boolean、Null、Undefined、Symbol
    引用类型:Object、Array、Function

  2. 只有""、0、NaN、null、undefined变Boolean值是false

  3. toPrecision() 方法返回指定长度的数值字符串。
    toPrecision() 方法以指定的精度返回该数值对象的字符串表示,四舍五入到 precision 参数指定的显示数字位数。注意这里是可以有四舍五入的!!!
    对比toFixed 把数字转换为字符串,结果的小数点后有指定位数的数字

1.调用对象未声明的属性会undifned
var user={};
console.log(user.name);//undifned
2.使用未赋值只声明的基本数据类型会undifned
var one;
console.log(one);//undifned
3.使用未声明的变量会报错
console.log(two);//new_file.html:15 Uncaught ReferenceError: two is not defined


dom2规定的事件流包括3个阶段:①事件捕获,②处于目标阶段(事件处理 ),③事件冒泡阶段。

  1. var a的时候进行了变量提升,但是要执行到那一步才会真的赋值。即使有的时候先提升了变量,但还是得等到顺序下来财富值,仅仅是单纯的声明了而已。而使用未赋值只声明的基本数据类型会undifned

console.log(1/0)的话值是:Infinity,所以isNaN(1/0)返回的是false,但是isNaN(0/0)返回的就是true
4. console.log(0 in [1])---->true
console.log(1 in [1])---->false
in操作符,对于数组属性需要指定数字形式的索引值来表示数组的属性名称(固有属性除外,如length)。
是指index下标。
5. 1 && 2 > 1,先判断右边的表达式,2>1返回true。1 && true返回的结果也是true。
6. flash和js通过什么类如何交互?:ExternalInterface

Flash提供了ExternalInterface接口与JavaScript通信
两个方法:call和addCallback
作用:call让Flash调用js里的方法,addCallback是用来注册flash函数让js调用。

  1. 关于身份证号(以15位为准) isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
    6位地区编码 4位年份 2位月份 2位日数 4位校检码(已经过时)

  2. ({} + 'b' > {} + 'a')返回值是
    "[object Object]b">"[object Object]a"
    true

  3. Math.max(args...)传入参数是任意数量的值,参数是Number类型,可以是小数,整数,正数,负数或者是0.如果不是上面所述类型就会返回NaN.所以不能是数组
    所以想要寻找arr中的最大值的话

Math.max(arr[0], arr[1], arr[2], arr[3])
Math.max.call(Math, arr[0], arr[1], arr[2], arr[3])
Math.max.apply(Math,arr)

  1. @import用于引用css;
    import可用于引用js

  2. parseInt会先把数字转成字符串,然后再把字符串转数字,所以parseint本身就是隐式转换

  3. 三元运算符也是隐式转换,先是变成Boolean值,然后变成对应值。

几个常见的事件的方法
preventDefault() 取消事件默认行为,如阻止点击提交按钮时对表单的提交(本题中click并没有什么默认行为)
stopImmediatePropagation() 取消事件冒泡同时阻止当前节点上的事件处理程序被调用,影响当前的事件***

stopPropagation() 取消事件冒泡,不影响事件***

cancelBubbe() 取消事件冒泡

returnValue() 取消事件默认行为

  1. 全局方法:
    编码相关:
    escape()、unescape()、encodeURI()、decodeURI()、
    encodeURIComponent()、decodeURIComponent()
    数据处理:
    Number()、String()
    数字相关:
    isFinite()、isNaN()、parseFloat()、parseInt()
    特殊:
    eval()

  2. 判断对象myObj是否存在:

前提是myobj是一个对象,只是存在与不存在的问题,几种表示方法:
1、!obj
2、!window.obj
3、typeof myObj == "undefined(判断对象是否有定义,已定义未赋值,返回true)
4、myObj == undefined(已定义未赋值。返回true)
5、myObj === undefined (已定义未赋值,返回true)
6、!this.hasOwnProperty('myObj'))(判断是否为顶层对象的一个属性)
7、myobj == null(注意null与undefined的区别,ull指的是已经赋值为null的空对象,即这个对象实际上是有值的,而undefined指的是不存在或没有赋值的对象。)

posted @ 2021-03-02 23:08  梦中少女的心  阅读(63)  评论(0)    收藏  举报