소개
Shopkeeper 3를 아시는 분이라면 제가 6년 동안 기술 블로그를 만들어 왔으며 매달 6개 이상의 블로그 게시물을 정기적으로 게시한다는 사실을 아실 것입니다. 동시에 공유를 좋아하는 개발자로서 나에게는 ARTS와 같은 활동이 빼놓을 수 없는 것이 당연하다. 함께 공유할 예정이라 이전에 로컬 문서 녹음을 해본 적이 있어서 내용만 통합하면 2주차 체크인을 시작하겠습니다.
연산
이번 주 공유하는 알고리즘 질문은 Leetcode-70( LeetCode 공식 홈페이지 - 전 세계 괴짜들에게 사랑받는 기술 성장 플랫폼 ) 의 고전적인 알고리즘 질문인 계단 오르기 문제입니다.
문제 설명: 사람이 계단을 오를 때 한 걸음에 한 층만 걸을 수 있고, 한 걸음에 두 층만 걸을 수 있습니다. 총 몇 가지 방법이 있습니까?
입력: 총 계단 수
결과: 이동하는 방법에는 여러 가지가 있습니다.
문제 해결 아이디어:
이 문제는 재귀적인 문제입니다.
1. 총 계단 수는 1개입니다. 한 번에 한 걸음씩 걷는 길은 한 가지입니다.
2. 총 계단 수는 2개이며, 걷는 방법은 두 가지가 있습니다.
1) 한 걸음씩, 두 걸음씩
2) 한 번에 두 층씩 걷고, 한 번에 한 걸음씩 걷는다.
3. 총 레벨 수가 n인 계단에는 몇 가지 방법이 있습니까?
레벨 n에 도달할 수 있는 가능성은 두 가지뿐입니다.
1) n-1층에서 n층으로 한 단계(한 단계씩) 올라갑니다.
2) n-2층에서 n층까지 1단(1단, 2층) 올라가세요.
최종 방법:
총 계단 수 n일 때 걷는 길 = 총 계단 수 n-1일 때 걷는 길 + 총 계단 수 n-2일 때 걷는 길
레벨 0에는 이동 횟수가 0번 있다는 점을 제외하면 피보나치 수열과 유사합니다.
참고: 레이어 0에 0가지 유형, 레이어 1에 1가지 유형, 레이어 2에 2가지 유형, 레이어 3=레이어 2+1, 레이어 4=레이어 3+2,…
JS를 사용하여 구현한 코드는 다음과 같습니다.
function step(n){
if(n <= 2){
return n;
}
var n1 = 1;
var n2 = 1;
var sum = 0;
for(var i = 3;i<=n;i++){
sum = n1+n2;
n1 = n2;
n2 = sum;
}
return sum;
}
검토
최근 Web 3의 기술에 대해 연구하고 있습니다. Web 3와 관련된 기사를 몇 가지 공유하겠습니다. 이 기사는 Ethereum 트랜잭션의 전체주기에 관한 것입니다. 특정 기사 링크: Notonlyowner | 1 DAI 를 보내면 어떻게 되나요?
초보자로서 이 기사를 읽으면 이더리움의 전체 거래 주기에 대한 예비 이해를 갖게 될 것입니다. 기사에서 발췌한 내용을 공유해 보겠습니다.
가스 마법
다음 단계는 거래에 대해 지불할 금액을 결정하는 것입니다. 모든 트랜잭션은 트랜잭션을 실행하고 검증하는 데 시간과 리소스가 소요되는 노드 네트워크에 수수료를 지불해야 한다는 점을 기억하세요.
거래 실행 비용은 ETH로 지불됩니다. 그리고 ETH의 최종 금액은 거래에서 소비하는 순 가스의 양 (즉, 계산 비용이 얼마나 드는지), 소비한 각 가스 단위에 대해 지불할 의향이 있는 금액, 네트워크가 허용할 의향이 있는 금액에 따라 달라집니다. 최소한.
사용자 관점에서 볼 때 결론은 일반적으로 더 많은 비용을 지불할수록 더 빠른 거래가 포함된다는 것입니다. 따라서 다음 블록에서 Vitalik 1 DAI를 지불하려면 가스가 더 저렴해질 때까지 몇 분(또는 그 이상, 때로는 훨씬 더 오래)을 기다리는 것보다 더 높은 수수료를 설정해야 할 것입니다.
지갑마다 가스 비용을 결정하는 데 서로 다른 접근 방식을 취할 수 있습니다. 나는 모든 사람이 사용하는 단일 방탄 메커니즘을 알지 못합니다. 올바른 수수료를 결정하기 위한 전략에는 노드에서 가스 관련 정보(예: 네트워크에서 허용하는 최소 기본 수수료)를 쿼리하는 것이 포함될 수 있습니다.
다음 단계는 거래에 대해 지불할 금액을 결정하는 것입니다. 모든 거래는 노드 네트워크에 수수료를 지불해야 하며 이를 실행하고 검증하는 데 시간과 리소스가 필요하다는 점을 기억하세요.
거래 실행 비용은 ETH로 지불됩니다. ETH의 최종 금액은 거래에서 소비하는 순 가스의 양(즉, 계산 비용이 얼마나 높은지), 소비된 가스 단위당 지불할 의사가 있는 금액, 네트워크가 허용할 의사가 있는 최소 금액에 따라 달라집니다.
사용자 관점에서 볼 때 결론은 일반적으로 더 많은 비용을 지불할수록 거래가 더 빨리 포함된다는 것입니다. 따라서 다음 블록에서 Vitalik 1 DAI를 지불하려면 가스가 더 저렴해질 때까지 몇 분(또는 그 이상, 때로는 더 오래)을 기다리는 것보다 더 높은 수수료를 설정해야 할 수도 있습니다.
지갑마다 가스 가격을 결정하는 데 서로 다른 접근 방식을 취할 수 있습니다. 모두가 어떤 방탄 장치를 사용하는지 모르겠습니다. 올바른 수수료를 결정하기 위한 전략에는 노드에서 가스 관련 정보(예: 네트워크에서 허용하는 최소 기본 수수료)를 쿼리하는 것이 포함될 수 있습니다.
기술/팁
이번에는 여전히 프론트 엔드 개발에 대한 중요하고 고전적인 지식 포인트를 공유합니다. 키와 함께 diff 알고리즘을 사용하지만 인덱스를 값으로 사용하는 것과 관련하여 즉, 그 자리에서 직접 업데이트할 수 있습니다. 새로운 virtual DOM을 추가하면 키의 존재 여부가 바로 업데이트됩니다. 이 태그의 업데이트된 내용을 재사용하세요. 키가 존재하지 않는 경우 직접 새 태그를 생성하세요.
구체적인 예는 다음과 같습니다.
<ul id="content">
<li v-for="(item, index) in array" :key="index">
{
{ item }}
<input type="text">
</li>
</ul>
<button @click="addClick">在下标为1的位置新增一行</button>
export default {
data(){
return {
array: ["11", "44", "22", "33"]
}
},
methods: {
addClick(){
this.array.splice(1, 0, '44')
}
}
};
위 코드에서 볼 수 있듯이 v-for 루프를 통해 새로운 DOM 구조가 생성되는데, 여기서 키는 연속적이고 데이터와 일치한다.그런 다음 새로운 DOM 구조와 기존 DOM 구조를 비교하고 차이점을 찾아낸다. diff 알고리즘을 적용한 후 패치를 페이지에 적용하고 마지막으로 새 li를 추가한 다음 두 번째 요소부터 내용을 업데이트합니다.
공유하다
이번에는 DTU와 관련된 내용을 몇 가지 공유하고, 개인적인 관점에서 DTU의 특징을 살펴보겠습니다. 개인적으로 DTU의 특징은 높은 보안성, 사용의 용이성, 2차 개발, 원격 업그레이드, 저렴한 비용이라는 5가지 측면이 있다고 생각합니다.
높은 보안성은 DTU의 기본 특성 중 하나이며 DTU 장비 및 데이터의 보안을 보호하기 위해 방화벽, 데이터 암호화 및 인증 메커니즘과 같은 다양한 보호 장치를 갖추고 있습니다. DTU는 데이터 전송을 암호화하여 데이터의 보안을 보장하고 데이터 유출 위험을 방지할 수 있습니다.
DTU의 사용 용이성도 장점 중 하나입니다. 사용자 친화적인 인터페이스와 간단하고 이해하기 쉬운 작동 절차를 채택하여 사용자가 빠르고 효과적으로 학습 비용을 절감할 수 있습니다.
DTU는 간단한 구성 및 설정을 통해 장치의 상호 연결 및 상호 운용성을 신속하게 실현할 수 있으며 2차 개발도 수행할 수 있습니다. 사용자는 JavaScript를 통해 2차 개발 및 맞춤형 개발을 수행하여 보다 개인화된 요구를 충족할 수 있습니다.
원격 업그레이드 가능성도 DTU의 중요한 기능으로, 현장 작업에 영향을 주지 않고 DTU 장비를 원격으로 업그레이드할 수 있어 현장 유지 관리 인력의 작업을 크게 촉진합니다. 즉, DTU는 원격 업그레이드를 통해 장비를 업그레이드할 수 있어 장비 가동 중단 및 업그레이드로 인한 생산 손실을 방지할 수 있습니다.
DTU는 또한 저비용 특성을 갖고 있어 가격이 저렴하여 대규모 애플리케이션에 사용할 수 있을 뿐만 아니라 투자 회수 기간을 크게 단축할 수 있습니다. 사물 인터넷 분야에서 중요한 장치가 됨으로써 기업의 장비 비용을 크게 절감하고 기업의 "비용 절감 및 효율성 증가" 효과를 향상시킬 수 있습니다.
결론
이번 나눔은 여기까지입니다. 2주차는 차근차근 진행됩니다. 일반적으로 이런 것들을 따로 공부하면서 매일 시간을 내어 공부하고, 주말에 요약을 하는 것이 좋습니다. 네 가지를 하나씩 완성한 후에는 프로그래밍 사고력이 점차 향상될 수 있으며, 계속해서 미묘하게 발전하고 성장할 수 있습니다! 다음 주에 뵙겠습니다!