예제 #1
0
        public int MinJumps2(int[] arr)
        {
            if (arr.Length == 1)
            {
                return(0);
            }

            var firstItem = arr.First();
            var lastItem  = arr.Last();

            if (firstItem == lastItem)
            {
                return(1);
            }

            var calcDic = new Dictionary <int, DicEntity>();

            calcDic[firstItem] = new DicEntity(int.MinValue, 0);
            for (int i = 0; i < arr.Length - 1; i++)
            {
                var curValue  = arr[i];
                var curEntity = calcDic[curValue];

                if (i != 0)
                {
                    var leftValue = arr[i - 1];
                    Opera(calcDic, curValue, leftValue, curEntity.Count);
                }

                var rightValue = arr[i + 1];
                Opera(calcDic, curValue, rightValue, curEntity.Count);
            }

            return(calcDic[lastItem].Count);
        }
예제 #2
0
 public string DicsSaveChanges(string jsonString, string action)
 {
     try
     {
         DicEntity  ue = JsonConvert.DeserializeObject <DicEntity>(jsonString);
         DicManager dm = new DicManager();
         if (action == "add")
         {
             ue.iId        = Guid.NewGuid().ToString();
             ue.iKey       = ue.iValue;
             ue.iCreatedBy = SessionHelper.CurrentUser.iUserName;
             ue.iUpdatedBy = SessionHelper.CurrentUser.iUserName;
             dm.Insert(ue);
         }
         else
         {
             DicEntity ueOld = dm.GetDic(ue.iId);
             ue.iUpdatedBy = SessionHelper.CurrentUser.iUserName;
             ue.iKey       = ueOld.iKey;
             ue.iCreatedBy = ueOld.iCreatedBy;
             ue.iCreatedOn = ueOld.iCreatedOn;
             dm.Update(ue);
         }
         return("success");
     }
     catch (Exception e)
     {
         return(e.ToString());
     }
 }
예제 #3
0
        public string MinWindow(string s, string t)
        {
            var resLength = int.MaxValue;
            var resStr    = "";

            var dic     = t.GroupBy(i => i).ToDictionary(i => i.Key, j => j.Count());
            var tEntity = new DicEntity(dic);

            var charSets = tEntity.GetCharSets();
            var r        = DicEntity.BuilderCountDicEntity(charSets);
            var rIndex   = 0;
            var lIndex   = -1;

            while (rIndex < s.Length)
            {
                r.AddChar(s[rIndex]);

                while (r.Equals(tEntity))
                {
                    if (resLength > rIndex - lIndex)
                    {
                        resLength = rIndex - lIndex;
                        resStr    = s.Substring(lIndex + 1, rIndex - lIndex);
                    }

                    lIndex++;
                    r.SubChar(s[lIndex]);
                }

                rIndex++;
            }

            return(resStr);
        }
예제 #4
0
        public ActionResult Save(DicEntity entity)
        {
            Dictionary <string, object> paras = new Dictionary <string, object>();

            paras["id"]   = entity.id;
            paras["name"] = entity.name;
            paras["tag"]  = entity.tag;
            paras["sort"] = entity.sort;
            paras["code"] = entity.code;
            return(OperationReturn(DALUtility.Dic.Save(paras) > 0));
        }
예제 #5
0
        public ActionResult Form(int id = 0, int tag = 0)
        {
            DicEntity entity = new DicEntity();

            entity.tag = tag;
            if (id > 0)
            {
                entity = DALUtility.Dic.GetDicById(id);
            }
            ViewData["list"]   = DALUtility.Dic.GetDicByTag(0).ToList();
            ViewData["entity"] = entity;
            return(View("_Form"));
        }
예제 #6
0
        public void Update(DicEntity entity)
        {
            entity.iUpdatedOn = DateTime.Now;
            IDbSession session = SessionFactory.CreateSession();

            try
            {
                session.BeginTrans();
                Repository.Update <DicEntity>(session.Connection, entity, session.Transaction);
                session.Commit();
            }
            catch (System.Exception)
            {
                session.Rollback();
                throw;
            }
            finally
            {
                session.Dispose();
            }
        }
예제 #7
0
        private void Opera(Dictionary <int, DicEntity> calcDic, int preValue, int curValue, int preCount)
        {
            if (!calcDic.ContainsKey(curValue))
            {
                calcDic[curValue] = new DicEntity(preValue, preCount + 1);
                return;
            }

            var entityTemp = calcDic[curValue];

            if (entityTemp.Count <= preCount)
            {
                if (entityTemp.PreValue != curValue)
                {
                    entityTemp.PreValue = curValue;
                    entityTemp.Count++;
                }

                return;
            }

            entityTemp.PreValue = preValue;
            entityTemp.Count    = preCount + 1;
        }