跳至主要內容
算法指标

算法

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。

算法的指标

主要还是从算法所占用的「时间」和「空间」两个维度去考量。

  • 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。
  • 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。

时间复杂度

首先要说的是,时间复杂度的计算并不是计算程序具体运行的时间,而是算法执行语句的次数。 当我们面前有多个算法时,我们可以通过计算时间复杂度,判断出哪一个算法在具体执行时花费时间最多和最少。


yyshino大约 2 分钟FrontEnd浏览器
深度优先遍历

前序遍历

根左右

function preorderTraversal(root: TreeNode | null): number[] {
        // 栈实现
    const ans: number[] = []
    if(!root){
        return ans
    }
    const stk:TreeNode[] = [root] // 将节点 压入栈内
    while(stk.length){
        // 若栈不为空,每次从栈中弹出一个节点 处理该节点
        const {left,right,val} = stk.pop()
        // 压入根节点
        ans.push(val)
        // 先把节点右孩子压入栈,接着把节点左孩子压入栈(如果有孩子节点)
        right && stk.push(right)
        left && stk.push(left)
    }
    return ans
};

yyshino大约 2 分钟FrontEnd浏览器
广度优先遍历

广度优先遍历 - 层序遍历

思路:

  /**
   * Definition for a binary tree node.
   * class TreeNode {
   *     val: number
   *     left: TreeNode | null
   *     right: TreeNode | null
   *     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
   *         this.val = (val===undefined ? 0 : val)
   *         this.left = (left===undefined ? null : left)
   *         this.right = (right===undefined ? null : right)
   *     }
   * }
   */

  function levelOrder(root: TreeNode | null): number[][] {
      if(!root){
          return []
      }

      let ans = []
      let cur = [root]
      while(cur.length){
          let nxt = []
          let vals = []
          for(const node of cur){
              vals.push(node.val)
              if(node.left) nxt.push(node.left)
              if(node.right) nxt.push(node.right)
          }
          cur = nxt
          ans.push(vals)
      }
      return ans
  };

yyshino小于 1 分钟FrontEnd浏览器
SEO优化

SEO优化

meta元信息处理

html头部中

  <title></title>
  <meta name="keywords" content="" />
  <meta name="description" content="" />

yyshino小于 1 分钟FrontEnd浏览器
UED优化

01-UED优化 常见名词介绍

  • UI: User Interface 用户界面

  • UID: User Interface Design 用户界面设计

  • ID:Interaction design 交互设计

  • UE or UX: User Experience 用户体验

  • UED: User Experience Design 用户体验设计


yyshino小于 1 分钟FrontEnd浏览器
读书笔记-02-黑客攻防技术宝典-浏览器实战篇

黑客攻防技术宝典-浏览器实战篇

第1章 浏览器知识

同源策略

浏览器中最重要的安全措施就是同源策略 (Same Origin Policy,SOP)。同源策略用于限制不同来源的资 源之间的交互。

同源策略的含义就是对于不同的页面,如果它们的主机名、协议和端口都相同,那它们就是同一来源的。 如果上述三个属性中有任何一个不一样,那就不能算是同源了。而同一来源的资源,即主机名、协议和端 口都相同的资源之间的交互,是不受限制的

最初,同源策略只适用于外部资源,后来才扩展到包含其他来源的资源。比如,使用file://协议访问本地 文件,使用chrome://协议访问浏览器相关的资源等。除了这两个协议之外,现在的浏览器还支持其他一些 协议。


yyshino大约 65 分钟FrontEnd浏览器网络安全
读书笔记-01-白帽子讲浏览器安全

白帽子讲浏览器安全

初探浏览器安全

漏洞三要素

  • 完整性 :指对资源的可信程度。
  • 可用性 :指访问资源的能力。
  • 机密性 :机密性指对一些需要授权的信息的限制。

浏览器中常见的安全概念

URL

URL 统一资源定位符”(Uniform Resource Locator,URL )

image-20230329163718102
image-20230329163718102

yyshino大约 20 分钟FrontEnd浏览器网络安全