Skip to content

holisound/leetcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Lead a way of sloving problems (LeetCode)

算法思考/思维 60% 读题、审题,信息(已知条件)提取(包括:正文、示例和提示)

  • 读题之后,有比较清晰的解题思路 或【无法理解】已知条件对于解题思路的帮助和意图
  • 晦涩的表达措辞可能是一种误导(思路陷阱)
  • 通过阅读题解辅助理解题意,大致能看懂题解中的解题思路
  • 别人的思路只能作为参考,想方设法把别人思路中的亮点进行提炼转化,补充优化到你自己的解题思路
  • 任何一个经过加工、咀嚼、修饰的结论或者思路都不可能是真正属于你的;解题过程中自己踩坑避坑的过程,是真正属于你的解题思路。
  • 从题目要求的【输出结果】入手。通过输出结果的数据结构,能帮助了解题意。

动手编码/调试 40% 写程序

  • 建立节点映射边长,超内存,矩阵超了,用哈希表可以过
  • 枚举子串边界和枚举子串元素

常用解题模板

//枚举子串边界
for i:=0;i<n;i++{
    for j:=0;j<i+1;j++{
    }
}
//枚举子串元素
for i:=0;i<n;i++{
    for j:=i;j<n;j++{
    }
}
// 三元问题 转化成 二元

for i := 0; i < m; i++ {
    // 顺时针坐标转置 i, j -> j, m-1-i
    col := m - 1 - i
    for j := 0; j <= n; j++ { // 元素标记位和越界标记位
        if j == n || box[i][j] == '*' {

}}}
// byte类型,不能直接二进制运算 
// 数组从后往前遍历的好处:在遍历同时需要删除元素的时候。不会影响后续元素的索引相对位置。

// 枚举二进制子集
for i:=1;i<=n;i++{
    for j:=i;j>0;j=(j-1)&i{
        
    }
}

About

code snippets with comments which I learned from solving the problems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published